Aboudek/ASM_TO_LLVM_V2
0
1; ModuleID = 'tg/extr_interface.c_command_generator.c'2source_filename = "tg/extr_interface.c_command_generator.c"3target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-unknown-linux-gnu"5 6%struct.TYPE_6__ = type { i32 }7%struct.TYPE_7__ = type { i32 }8%struct.tgl_message = type { i32 }9 10@command_generator.len = internal global i32 0, align 411@command_generator.index = internal global i32 0, align 412@command_generator.mode = internal global i32 0, align 413@command_generator.command_pos = internal global ptr null, align 814@command_generator.command_len = internal global i32 0, align 415@in_chat_mode = dso_local global i64 0, align 816@in_chat_commands = dso_local global i32 0, align 417@rl_point = dso_local global i64 0, align 818@rl_line_buffer = dso_local global ptr null, align 819@cur_token = dso_local global ptr null, align 820@cur_token_len = dso_local global i32 0, align 421@ca_none = dso_local global i32 0, align 422@ca_string = dso_local global i32 0, align 423@ca_string_end = dso_local global i32 0, align 424@ca_number = dso_local global i32 0, align 425@ca_double = dso_local global i32 0, align 426@ca_msg_id = dso_local global i32 0, align 427@TGL_PEER_USER = dso_local global i32 0, align 428@TLS = dso_local global i32 0, align 429@TGL_PEER_CHANNEL = dso_local global i32 0, align 430@modifiers = dso_local global i32 0, align 431@autocomplete_peer = dso_local global ptr null, align 832@TGL_PEER_CHAT = dso_local global i32 0, align 433@autocomplete_id = dso_local global %struct.TYPE_6__ zeroinitializer, align 434@NOT_FOUND = dso_local global i32 0, align 435 36; Function Attrs: noinline nounwind optnone uwtable37define dso_local ptr @command_generator(ptr noundef %0, i32 noundef %1) #0 {38 %3 = alloca ptr, align 839 %4 = alloca ptr, align 840 %5 = alloca i32, align 441 %6 = alloca ptr, align 842 %7 = alloca i8, align 143 %8 = alloca ptr, align 844 %9 = alloca ptr, align 845 %10 = alloca ptr, align 846 store ptr %0, ptr %4, align 847 store i32 %1, ptr %5, align 448 %11 = load i64, ptr @in_chat_mode, align 849 %12 = icmp ne i64 %11, 050 br i1 %12, label %13, label %2151 5213: ; preds = %253 store ptr null, ptr %6, align 854 %14 = load i32, ptr @in_chat_commands, align 455 %15 = load i32, ptr @command_generator.index, align 456 %16 = load ptr, ptr %4, align 857 %17 = load i64, ptr @rl_point, align 858 %18 = trunc i64 %17 to i3259 %19 = call i32 @complete_string_list(i32 noundef %14, i32 noundef %15, ptr noundef %16, i32 noundef %18, ptr noundef %6)60 store i32 %19, ptr @command_generator.index, align 461 %20 = load ptr, ptr %6, align 862 store ptr %20, ptr %3, align 863 br label %35864 6521: ; preds = %266 store i8 0, ptr %7, align 167 %22 = load ptr, ptr @rl_line_buffer, align 868 %23 = load i64, ptr @rl_point, align 869 %24 = getelementptr inbounds i8, ptr %22, i64 %2370 %25 = load i8, ptr %24, align 171 store i8 %25, ptr %7, align 172 %26 = load ptr, ptr @rl_line_buffer, align 873 %27 = load i64, ptr @rl_point, align 874 %28 = getelementptr inbounds i8, ptr %26, i64 %2775 store i8 0, ptr %28, align 176 %29 = load i32, ptr %5, align 477 %30 = icmp ne i32 %29, 078 br i1 %30, label %37, label %3179 8031: ; preds = %2181 %32 = load ptr, ptr %4, align 882 %33 = call i32 @strlen(ptr noundef %32)83 store i32 %33, ptr @command_generator.len, align 484 store i32 -1, ptr @command_generator.index, align 485 %34 = call i32 (...) @get_complete_mode()86 store i32 %34, ptr @command_generator.mode, align 487 %35 = load ptr, ptr @cur_token, align 888 store ptr %35, ptr @command_generator.command_pos, align 889 %36 = load i32, ptr @cur_token_len, align 490 store i32 %36, ptr @command_generator.command_len, align 491 br label %4892 9337: ; preds = %2194 %38 = load i32, ptr @command_generator.mode, align 495 %39 = icmp ne i32 %38, 13496 br i1 %39, label %40, label %4797 9840: ; preds = %3799 %41 = load i32, ptr @command_generator.mode, align 4100 %42 = icmp ne i32 %41, 133101 br i1 %42, label %43, label %47102 10343: ; preds = %40104 %44 = load i32, ptr @command_generator.index, align 4105 %45 = icmp eq i32 %44, -1106 br i1 %45, label %46, label %47107 10846: ; preds = %43109 store ptr null, ptr %3, align 8110 br label %358111 11247: ; preds = %43, %40, %37113 br label %48114 11548: ; preds = %47, %31116 %49 = load i32, ptr @command_generator.mode, align 4117 %50 = load i32, ptr @ca_none, align 4118 %51 = icmp eq i32 %49, %50119 br i1 %51, label %72, label %52120 12152: ; preds = %48122 %53 = load i32, ptr @command_generator.mode, align 4123 %54 = load i32, ptr @ca_string, align 4124 %55 = icmp eq i32 %53, %54125 br i1 %55, label %72, label %56126 12756: ; preds = %52128 %57 = load i32, ptr @command_generator.mode, align 4129 %58 = load i32, ptr @ca_string_end, align 4130 %59 = icmp eq i32 %57, %58131 br i1 %59, label %72, label %60132 13360: ; preds = %56134 %61 = load i32, ptr @command_generator.mode, align 4135 %62 = load i32, ptr @ca_number, align 4136 %63 = icmp eq i32 %61, %62137 br i1 %63, label %72, label %64138 13964: ; preds = %60140 %65 = load i32, ptr @command_generator.mode, align 4141 %66 = load i32, ptr @ca_double, align 4142 %67 = icmp eq i32 %65, %66143 br i1 %67, label %72, label %68144 14568: ; preds = %64146 %69 = load i32, ptr @command_generator.mode, align 4147 %70 = load i32, ptr @ca_msg_id, align 4148 %71 = icmp eq i32 %69, %70149 br i1 %71, label %72, label %81150 15172: ; preds = %68, %64, %60, %56, %52, %48152 %73 = load i8, ptr %7, align 1153 %74 = icmp ne i8 %73, 0154 br i1 %74, label %75, label %80155 15675: ; preds = %72157 %76 = load i8, ptr %7, align 1158 %77 = load ptr, ptr @rl_line_buffer, align 8159 %78 = load i64, ptr @rl_point, align 8160 %79 = getelementptr inbounds i8, ptr %77, i64 %78161 store i8 %76, ptr %79, align 1162 br label %80163 16480: ; preds = %75, %72165 store ptr null, ptr %3, align 8166 br label %358167 16881: ; preds = %68169 %82 = load i32, ptr @command_generator.command_len, align 4170 %83 = icmp sge i32 %82, 0171 %84 = zext i1 %83 to i32172 %85 = call i32 @assert(i32 noundef %84)173 store ptr null, ptr %8, align 8174 %86 = load i32, ptr @command_generator.mode, align 4175 %87 = and i32 %86, 255176 switch i32 %87, label %349 [177 i32 136, label %88178 i32 128, label %102179 i32 130, label %133180 i32 134, label %163181 i32 133, label %163182 i32 137, label %176183 i32 129, label %191184 i32 138, label %206185 i32 132, label %237186 i32 131, label %252187 i32 135, label %332188 ]189 19088: ; preds = %81191 %89 = load i32, ptr @command_generator.index, align 4192 %90 = load ptr, ptr @command_generator.command_pos, align 8193 %91 = load i32, ptr @command_generator.command_len, align 4194 %92 = call i32 @complete_command_list(i32 noundef %89, ptr noundef %90, i32 noundef %91, ptr noundef %8)195 store i32 %92, ptr @command_generator.index, align 4196 %93 = load i8, ptr %7, align 1197 %94 = icmp ne i8 %93, 0198 br i1 %94, label %95, label %100199 20095: ; preds = %88201 %96 = load i8, ptr %7, align 1202 %97 = load ptr, ptr @rl_line_buffer, align 8203 %98 = load i64, ptr @rl_point, align 8204 %99 = getelementptr inbounds i8, ptr %97, i64 %98205 store i8 %96, ptr %99, align 1206 br label %100207 208100: ; preds = %95, %88209 %101 = load ptr, ptr %8, align 8210 store ptr %101, ptr %3, align 8211 br label %358212 213102: ; preds = %81214 %103 = load i32, ptr @command_generator.command_len, align 4215 %104 = icmp ne i32 %103, 0216 br i1 %104, label %105, label %117217 218105: ; preds = %102219 %106 = load ptr, ptr @command_generator.command_pos, align 8220 %107 = getelementptr inbounds i8, ptr %106, i64 0221 %108 = load i8, ptr %107, align 1222 %109 = sext i8 %108 to i32223 %110 = icmp eq i32 %109, 64224 br i1 %110, label %111, label %117225 226111: ; preds = %105227 %112 = load i32, ptr @TGL_PEER_USER, align 4228 %113 = load i32, ptr @command_generator.index, align 4229 %114 = load ptr, ptr @command_generator.command_pos, align 8230 %115 = load i32, ptr @command_generator.command_len, align 4231 %116 = call i32 @complete_username(i32 noundef %112, i32 noundef %113, ptr noundef %114, i32 noundef %115, ptr noundef %8)232 store i32 %116, ptr @command_generator.index, align 4233 br label %123234 235117: ; preds = %105, %102236 %118 = load i32, ptr @TLS, align 4237 %119 = load i32, ptr @command_generator.index, align 4238 %120 = load ptr, ptr @command_generator.command_pos, align 8239 %121 = load i32, ptr @command_generator.command_len, align 4240 %122 = call i32 @tgl_complete_user_list(i32 noundef %118, i32 noundef %119, ptr noundef %120, i32 noundef %121, ptr noundef %8)241 store i32 %122, ptr @command_generator.index, align 4242 br label %123243 244123: ; preds = %117, %111245 %124 = load i8, ptr %7, align 1246 %125 = icmp ne i8 %124, 0247 br i1 %125, label %126, label %131248 249126: ; preds = %123250 %127 = load i8, ptr %7, align 1251 %128 = load ptr, ptr @rl_line_buffer, align 8252 %129 = load i64, ptr @rl_point, align 8253 %130 = getelementptr inbounds i8, ptr %128, i64 %129254 store i8 %127, ptr %130, align 1255 br label %131256 257131: ; preds = %126, %123258 %132 = load ptr, ptr %8, align 8259 store ptr %132, ptr %3, align 8260 br label %358261 262133: ; preds = %81263 %134 = load i32, ptr @command_generator.command_len, align 4264 %135 = icmp ne i32 %134, 0265 br i1 %135, label %136, label %147266 267136: ; preds = %133268 %137 = load ptr, ptr @command_generator.command_pos, align 8269 %138 = getelementptr inbounds i8, ptr %137, i64 0270 %139 = load i8, ptr %138, align 1271 %140 = sext i8 %139 to i32272 %141 = icmp eq i32 %140, 64273 br i1 %141, label %142, label %147274 275142: ; preds = %136276 %143 = load i32, ptr @command_generator.index, align 4277 %144 = load ptr, ptr @command_generator.command_pos, align 8278 %145 = load i32, ptr @command_generator.command_len, align 4279 %146 = call i32 @complete_username(i32 noundef 0, i32 noundef %143, ptr noundef %144, i32 noundef %145, ptr noundef %8)280 store i32 %146, ptr @command_generator.index, align 4281 br label %153282 283147: ; preds = %136, %133284 %148 = load i32, ptr @TLS, align 4285 %149 = load i32, ptr @command_generator.index, align 4286 %150 = load ptr, ptr @command_generator.command_pos, align 8287 %151 = load i32, ptr @command_generator.command_len, align 4288 %152 = call i32 @tgl_complete_peer_list(i32 noundef %148, i32 noundef %149, ptr noundef %150, i32 noundef %151, ptr noundef %8)289 store i32 %152, ptr @command_generator.index, align 4290 br label %153291 292153: ; preds = %147, %142293 %154 = load i8, ptr %7, align 1294 %155 = icmp ne i8 %154, 0295 br i1 %155, label %156, label %161296 297156: ; preds = %153298 %157 = load i8, ptr %7, align 1299 %158 = load ptr, ptr @rl_line_buffer, align 8300 %159 = load i64, ptr @rl_point, align 8301 %160 = getelementptr inbounds i8, ptr %158, i64 %159302 store i8 %157, ptr %160, align 1303 br label %161304 305161: ; preds = %156, %153306 %162 = load ptr, ptr %8, align 8307 store ptr %162, ptr %3, align 8308 br label %358309 310163: ; preds = %81, %81311 %164 = load i8, ptr %7, align 1312 %165 = icmp ne i8 %164, 0313 br i1 %165, label %166, label %171314 315166: ; preds = %163316 %167 = load i8, ptr %7, align 1317 %168 = load ptr, ptr @rl_line_buffer, align 8318 %169 = load i64, ptr @rl_point, align 8319 %170 = getelementptr inbounds i8, ptr %168, i64 %169320 store i8 %167, ptr %170, align 1321 br label %171322 323171: ; preds = %166, %163324 %172 = load ptr, ptr @command_generator.command_pos, align 8325 %173 = load i32, ptr %5, align 4326 %174 = call ptr @rl_filename_completion_function(ptr noundef %172, i32 noundef %173)327 store ptr %174, ptr %8, align 8328 %175 = load ptr, ptr %8, align 8329 store ptr %175, ptr %3, align 8330 br label %358331 332176: ; preds = %81333 %177 = load i32, ptr @TLS, align 4334 %178 = load i32, ptr @command_generator.index, align 4335 %179 = load ptr, ptr @command_generator.command_pos, align 8336 %180 = load i32, ptr @command_generator.command_len, align 4337 %181 = call i32 @tgl_complete_chat_list(i32 noundef %177, i32 noundef %178, ptr noundef %179, i32 noundef %180, ptr noundef %8)338 store i32 %181, ptr @command_generator.index, align 4339 %182 = load i8, ptr %7, align 1340 %183 = icmp ne i8 %182, 0341 br i1 %183, label %184, label %189342 343184: ; preds = %176344 %185 = load i8, ptr %7, align 1345 %186 = load ptr, ptr @rl_line_buffer, align 8346 %187 = load i64, ptr @rl_point, align 8347 %188 = getelementptr inbounds i8, ptr %186, i64 %187348 store i8 %185, ptr %188, align 1349 br label %189350 351189: ; preds = %184, %176352 %190 = load ptr, ptr %8, align 8353 store ptr %190, ptr %3, align 8354 br label %358355 356191: ; preds = %81357 %192 = load i32, ptr @TLS, align 4358 %193 = load i32, ptr @command_generator.index, align 4359 %194 = load ptr, ptr @command_generator.command_pos, align 8360 %195 = load i32, ptr @command_generator.command_len, align 4361 %196 = call i32 @tgl_complete_encr_chat_list(i32 noundef %192, i32 noundef %193, ptr noundef %194, i32 noundef %195, ptr noundef %8)362 store i32 %196, ptr @command_generator.index, align 4363 %197 = load i8, ptr %7, align 1364 %198 = icmp ne i8 %197, 0365 br i1 %198, label %199, label %204366 367199: ; preds = %191368 %200 = load i8, ptr %7, align 1369 %201 = load ptr, ptr @rl_line_buffer, align 8370 %202 = load i64, ptr @rl_point, align 8371 %203 = getelementptr inbounds i8, ptr %201, i64 %202372 store i8 %200, ptr %203, align 1373 br label %204374 375204: ; preds = %199, %191376 %205 = load ptr, ptr %8, align 8377 store ptr %205, ptr %3, align 8378 br label %358379 380206: ; preds = %81381 %207 = load i32, ptr @command_generator.command_len, align 4382 %208 = icmp ne i32 %207, 0383 br i1 %208, label %209, label %221384 385209: ; preds = %206386 %210 = load ptr, ptr @command_generator.command_pos, align 8387 %211 = getelementptr inbounds i8, ptr %210, i64 0388 %212 = load i8, ptr %211, align 1389 %213 = sext i8 %212 to i32390 %214 = icmp eq i32 %213, 64391 br i1 %214, label %215, label %221392 393215: ; preds = %209394 %216 = load i32, ptr @TGL_PEER_CHANNEL, align 4395 %217 = load i32, ptr @command_generator.index, align 4396 %218 = load ptr, ptr @command_generator.command_pos, align 8397 %219 = load i32, ptr @command_generator.command_len, align 4398 %220 = call i32 @complete_username(i32 noundef %216, i32 noundef %217, ptr noundef %218, i32 noundef %219, ptr noundef %8)399 store i32 %220, ptr @command_generator.index, align 4400 br label %227401 402221: ; preds = %209, %206403 %222 = load i32, ptr @TLS, align 4404 %223 = load i32, ptr @command_generator.index, align 4405 %224 = load ptr, ptr @command_generator.command_pos, align 8406 %225 = load i32, ptr @command_generator.command_len, align 4407 %226 = call i32 @tgl_complete_channel_list(i32 noundef %222, i32 noundef %223, ptr noundef %224, i32 noundef %225, ptr noundef %8)408 store i32 %226, ptr @command_generator.index, align 4409 br label %227410 411227: ; preds = %221, %215412 %228 = load i8, ptr %7, align 1413 %229 = icmp ne i8 %228, 0414 br i1 %229, label %230, label %235415 416230: ; preds = %227417 %231 = load i8, ptr %7, align 1418 %232 = load ptr, ptr @rl_line_buffer, align 8419 %233 = load i64, ptr @rl_point, align 8420 %234 = getelementptr inbounds i8, ptr %232, i64 %233421 store i8 %231, ptr %234, align 1422 br label %235423 424235: ; preds = %230, %227425 %236 = load ptr, ptr %8, align 8426 store ptr %236, ptr %3, align 8427 br label %358428 429237: ; preds = %81430 %238 = load i32, ptr @modifiers, align 4431 %239 = load i32, ptr @command_generator.index, align 4432 %240 = load ptr, ptr @command_generator.command_pos, align 8433 %241 = load i32, ptr @command_generator.command_len, align 4434 %242 = call i32 @complete_string_list(i32 noundef %238, i32 noundef %239, ptr noundef %240, i32 noundef %241, ptr noundef %8)435 store i32 %242, ptr @command_generator.index, align 4436 %243 = load i8, ptr %7, align 1437 %244 = icmp ne i8 %243, 0438 br i1 %244, label %245, label %250439 440245: ; preds = %237441 %246 = load i8, ptr %7, align 1442 %247 = load ptr, ptr @rl_line_buffer, align 8443 %248 = load i64, ptr @rl_point, align 8444 %249 = getelementptr inbounds i8, ptr %247, i64 %248445 store i8 %246, ptr %249, align 1446 br label %250447 448250: ; preds = %245, %237449 %251 = load ptr, ptr %8, align 8450 store ptr %251, ptr %3, align 8451 br label %358452 453252: ; preds = %81454 %253 = load ptr, ptr @autocomplete_peer, align 8455 %254 = icmp ne ptr %253, null456 br i1 %254, label %255, label %282457 458255: ; preds = %252459 %256 = load ptr, ptr @autocomplete_peer, align 8460 %257 = getelementptr inbounds %struct.TYPE_7__, ptr %256, i32 0, i32 0461 %258 = load i32, ptr %257, align 4462 %259 = call i32 @tgl_get_peer_type(i32 noundef %258)463 %260 = load i32, ptr @TGL_PEER_USER, align 4464 %261 = icmp eq i32 %259, %260465 br i1 %261, label %262, label %268466 467262: ; preds = %255468 %263 = load ptr, ptr @autocomplete_peer, align 8469 %264 = load i32, ptr @command_generator.index, align 4470 %265 = load ptr, ptr @command_generator.command_pos, align 8471 %266 = load i32, ptr @command_generator.command_len, align 4472 %267 = call i32 @complete_user_command(ptr noundef %263, i32 noundef %264, ptr noundef %265, i32 noundef %266, ptr noundef %8)473 store i32 %267, ptr @command_generator.index, align 4474 br label %268475 476268: ; preds = %262, %255477 %269 = load ptr, ptr @autocomplete_peer, align 8478 %270 = getelementptr inbounds %struct.TYPE_7__, ptr %269, i32 0, i32 0479 %271 = load i32, ptr %270, align 4480 %272 = call i32 @tgl_get_peer_type(i32 noundef %271)481 %273 = load i32, ptr @TGL_PEER_CHAT, align 4482 %274 = icmp eq i32 %272, %273483 br i1 %274, label %275, label %281484 485275: ; preds = %268486 %276 = load ptr, ptr @autocomplete_peer, align 8487 %277 = load i32, ptr @command_generator.index, align 4488 %278 = load ptr, ptr @command_generator.command_pos, align 8489 %279 = load i32, ptr @command_generator.command_len, align 4490 %280 = call i32 @complete_chat_command(ptr noundef %276, i32 noundef %277, ptr noundef %278, i32 noundef %279, ptr noundef %8)491 store i32 %280, ptr @command_generator.index, align 4492 br label %281493 494281: ; preds = %275, %268495 br label %282496 497282: ; preds = %281, %252498 %283 = load i32, ptr @autocomplete_id, align 4499 %284 = load i32, ptr @NOT_FOUND, align 4500 %285 = icmp ne i32 %283, %284501 br i1 %285, label %286, label %322502 503286: ; preds = %282504 %287 = load i32, ptr @TLS, align 4505 %288 = call ptr @tgl_message_get(i32 noundef %287, ptr noundef @autocomplete_id)506 store ptr %288, ptr %9, align 8507 %289 = load ptr, ptr %9, align 8508 %290 = icmp ne ptr %289, null509 br i1 %290, label %291, label %321510 511291: ; preds = %286512 %292 = load i32, ptr @command_generator.command_len, align 4513 %293 = icmp sgt i32 %292, 0514 br i1 %293, label %294, label %314515 516294: ; preds = %291517 %295 = load ptr, ptr @command_generator.command_pos, align 8518 %296 = load i8, ptr %295, align 1519 %297 = sext i8 %296 to i32520 %298 = icmp eq i32 %297, 47521 br i1 %298, label %299, label %314522 523299: ; preds = %294524 %300 = load i32, ptr @TLS, align 4525 %301 = load ptr, ptr %9, align 8526 %302 = getelementptr inbounds %struct.tgl_message, ptr %301, i32 0, i32 0527 %303 = load i32, ptr %302, align 4528 %304 = call ptr @tgl_peer_get(i32 noundef %300, i32 noundef %303)529 store ptr %304, ptr %10, align 8530 %305 = load ptr, ptr %10, align 8531 %306 = icmp ne ptr %305, null532 br i1 %306, label %307, label %313533 534307: ; preds = %299535 %308 = load ptr, ptr @autocomplete_peer, align 8536 %309 = load i32, ptr @command_generator.index, align 4537 %310 = load ptr, ptr @command_generator.command_pos, align 8538 %311 = load i32, ptr @command_generator.command_len, align 4539 %312 = call i32 @complete_user_command(ptr noundef %308, i32 noundef %309, ptr noundef %310, i32 noundef %311, ptr noundef %8)540 store i32 %312, ptr @command_generator.index, align 4541 br label %313542 543313: ; preds = %307, %299544 br label %320545 546314: ; preds = %294, %291547 %315 = load ptr, ptr %9, align 8548 %316 = load i32, ptr @command_generator.index, align 4549 %317 = load ptr, ptr @command_generator.command_pos, align 8550 %318 = load i32, ptr @command_generator.command_len, align 4551 %319 = call i32 @complete_spec_message_answer(ptr noundef %315, i32 noundef %316, ptr noundef %317, i32 noundef %318, ptr noundef %8)552 store i32 %319, ptr @command_generator.index, align 4553 br label %320554 555320: ; preds = %314, %313556 br label %321557 558321: ; preds = %320, %286559 br label %322560 561322: ; preds = %321, %282562 %323 = load i8, ptr %7, align 1563 %324 = icmp ne i8 %323, 0564 br i1 %324, label %325, label %330565 566325: ; preds = %322567 %326 = load i8, ptr %7, align 1568 %327 = load ptr, ptr @rl_line_buffer, align 8569 %328 = load i64, ptr @rl_point, align 8570 %329 = getelementptr inbounds i8, ptr %327, i64 %328571 store i8 %326, ptr %329, align 1572 br label %330573 574330: ; preds = %325, %322575 %331 = load ptr, ptr %8, align 8576 store ptr %331, ptr %3, align 8577 br label %358578 579332: ; preds = %81580 %333 = load i32, ptr @TLS, align 4581 %334 = load ptr, ptr %4, align 8582 %335 = load i32, ptr @command_generator.len, align 4583 %336 = load i32, ptr @command_generator.index, align 4584 %337 = load ptr, ptr @rl_line_buffer, align 8585 %338 = load i64, ptr @rl_point, align 8586 %339 = call i32 @tglf_extf_autocomplete(i32 noundef %333, ptr noundef %334, i32 noundef %335, i32 noundef %336, ptr noundef %8, ptr noundef %337, i64 noundef %338)587 store i32 %339, ptr @command_generator.index, align 4588 %340 = load i8, ptr %7, align 1589 %341 = icmp ne i8 %340, 0590 br i1 %341, label %342, label %347591 592342: ; preds = %332593 %343 = load i8, ptr %7, align 1594 %344 = load ptr, ptr @rl_line_buffer, align 8595 %345 = load i64, ptr @rl_point, align 8596 %346 = getelementptr inbounds i8, ptr %344, i64 %345597 store i8 %343, ptr %346, align 1598 br label %347599 600347: ; preds = %342, %332601 %348 = load ptr, ptr %8, align 8602 store ptr %348, ptr %3, align 8603 br label %358604 605349: ; preds = %81606 %350 = load i8, ptr %7, align 1607 %351 = icmp ne i8 %350, 0608 br i1 %351, label %352, label %357609 610352: ; preds = %349611 %353 = load i8, ptr %7, align 1612 %354 = load ptr, ptr @rl_line_buffer, align 8613 %355 = load i64, ptr @rl_point, align 8614 %356 = getelementptr inbounds i8, ptr %354, i64 %355615 store i8 %353, ptr %356, align 1616 br label %357617 618357: ; preds = %352, %349619 store ptr null, ptr %3, align 8620 br label %358621 622358: ; preds = %357, %347, %330, %250, %235, %204, %189, %171, %161, %131, %100, %80, %46, %13623 %359 = load ptr, ptr %3, align 8624 ret ptr %359625}626 627declare i32 @complete_string_list(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1628 629declare i32 @strlen(ptr noundef) #1630 631declare i32 @get_complete_mode(...) #1632 633declare i32 @assert(i32 noundef) #1634 635declare i32 @complete_command_list(i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1636 637declare i32 @complete_username(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1638 639declare i32 @tgl_complete_user_list(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1640 641declare i32 @tgl_complete_peer_list(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1642 643declare ptr @rl_filename_completion_function(ptr noundef, i32 noundef) #1644 645declare i32 @tgl_complete_chat_list(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1646 647declare i32 @tgl_complete_encr_chat_list(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1648 649declare i32 @tgl_complete_channel_list(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1650 651declare i32 @tgl_get_peer_type(i32 noundef) #1652 653declare i32 @complete_user_command(ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1654 655declare i32 @complete_chat_command(ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1656 657declare ptr @tgl_message_get(i32 noundef, ptr noundef) #1658 659declare ptr @tgl_peer_get(i32 noundef, i32 noundef) #1660 661declare i32 @complete_spec_message_answer(ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #1662 663declare i32 @tglf_extf_autocomplete(i32 noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, i64 noundef) #1664 665attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }666attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }667 668!llvm.module.flags = !{!0, !1, !2, !3, !4}669!llvm.ident = !{!5}670 671!0 = !{i32 1, !"wchar_size", i32 4}672!1 = !{i32 7, !"PIC Level", i32 2}673!2 = !{i32 7, !"PIE Level", i32 2}674!3 = !{i32 7, !"uwtable", i32 2}675!4 = !{i32 7, !"frame-pointer", i32 2}676!5 = !{!"clang version 15.0.3"}677 