Function at 0x401360
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x770
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x37]
push 0
push 1
call fcn.0040ad82
mov ecx, 0x4100ac
push dword [esi]
call fcn.0040ae8a
movzx eax, byte [0x4100ac]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x4100ad
cmovne eax, dword [0x4100b4]
mov dword [esp + 0x110], eax
cmovne ecx, dword [0x4100b0]
mov dword [esp + 0x114], ecx
sub esp, 0xc
movsd xmm0, qword [esp + 0x11c]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.0040ad8e
add esp, 0xc
mov dword [esp + 0x19c], edx
mov dword [esp + 0x198], eax
mov dword [esp + 0x2f8], str.addr2line
mov dword [esp + 0x2fc], 9
sub esp, 0xc
movsd xmm0, qword [esp + 0x304]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x1a4]
call fcn.0040ae72
mov esi, eax
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea eax, [esp + 0x134]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 4
lea eax, [esp + 0x150]
mov dword [esp + 0x144], eax
movaps xmm0, xmmword [0x40b050]
movups xmmword [esp + 0x148], xmm0
lea eax, [esp + 0x120]
mov dword [esp + 0xdc], eax
mov dword [esp + 0x2f8], 0x40babc
mov dword [esp + 0x2fc], 0x42
sub esp, 0xc
movsd xmm0, qword [esp + 0x304]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x708]
call fcn.0040ad76
xor ebx, ebx
mov dword [esp + 8], esi
cmp esi, 0xffffffff
setne byte [esp + 0x54]
mov dword [esp + 0x6fc], 0x40b0f4
mov byte [esp + 0x709], 1
mov eax, str.llvm_addr2line
mov esi, str.llvm_symbolizer
cmovne esi, eax
mov eax, str.LLVM_ADDR2LINE_OPTS
mov ecx, str.LLVM_SYMBOLIZER_OPTS
cmovne ecx, eax
mov dword [esp + 0x70c], ecx
mov byte [esp + 0x38], 0
mov dword [esp + 0x74], 3
mov dword [esp + 0x2f8], 0x40c8a4
lea eax, [esp + 0x38]
mov dword [esp + 0x2fc], eax
lea edi, [esp + 0x2f8]
mov dword [esp + 0x308], edi
mov eax, dword [esp + 0x74]
lea edx, [esp + 0xdc]
lea ecx, [esp + 0x198]
push edi
push edx
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
lea eax, [esp + 0x710]
push eax
call fcn.0040ae48
mov ecx, dword [esp + 0x308]
cmp ecx, edi
je 0x401576
mov eax, 5
test ecx, ecx
jne 0x40157d
jmp 0x401582
mov eax, 4
mov ecx, edi
mov edx, dword [ecx]
call dword [edx + eax*4]
cmp byte [esp + 0x38], 0
jne 0x402f5d
movzx eax, byte [esp + 0x54]
mov bl, al
xor ebx, 0xf
lea ecx, [esp + 0x198]
mov edx, 0x28
call fcn.00403200
test eax, eax
jne 0x402f64
lea ecx, [esp + 0x198]
mov edx, 0x41
call fcn.00403200
test eax, eax
jne 0x402f85
mov dword [esp + 0x74], 2
mov dword [esp + 0x78], 4
mov dword [esp + 0x7c], 0x101
mov byte [esp + 0x80], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x84], xmm0
movups xmmword [esp + 0x94], xmm0
movups xmmword [esp + 0xa4], xmm0
movups xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0x20000000
lea ecx, [esp + 0x198]
push 5
call fcn.004049f0
test eax, eax
je 0x401641
mov ebx, eax
mov eax, dword [eax + 0x1c]
mov edi, dword [eax]
test edi, edi
je 0x401653
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
jmp 0x401655
mov dword [esp + 0x54], 0
mov dword [esp + 0x70], 0
jmp 0x4016ad
xor esi, esi
mov dword [esp + 0x258], esi
mov dword [esp + 0x254], edi
sub esp, 0x10
movsd xmm0, qword [esp + 0x264]
movsd qword [esp], xmm0
lea eax, [esp + 0x308]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040ad5e
add esp, 0x10
test al, al
jne 0x402fc5
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x70], eax
mov dword [esp + 0x254], 8
mov dword [esp + 0x258], 0x3d
lea eax, [esp + 0x254]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], 2
sub esp, 8
movsd xmm0, qword [esp + 0x300]
movsd qword [esp], xmm0
lea ebx, [esp + 0x1a0]
mov ecx, ebx
call fcn.0040ae42
mov ecx, dword [esp + 0x19c]
lea edi, [ecx + eax*4]
cmp eax, edx
je 0x401771
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
lea esi, [edx*4]
shl eax, 2
sub esi, eax
jmp 0x40172c
add edi, 4
add esi, 0xfffffffc
je 0x40180f
mov ebx, dword [edi]
test ebx, ebx
je 0x401720
mov dword [esp + 0x254], 8
mov ecx, ebx
push 8
call fcn.0040ae2a
test al, al
jne 0x401762
mov dword [esp + 0x254], 0x3d
mov ecx, ebx
push 0x3d
call fcn.0040ae2a
test al, al
je 0x401720
lea ebx, [esp + 0x198]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
lea esi, [ecx + edx*4]
mov eax, 4
cmp edi, esi
je 0x40181b
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 4], ecx
cmove eax, ecx
or dword [eax + 0x18], 1
nop word cs:[eax + eax]
add edi, 4
cmp edi, esi
je 0x4017e1
mov ebx, dword [edi]
test ebx, ebx
je 0x4017a0
mov dword [esp + 0x2f8], 8
mov ecx, ebx
push 8
call fcn.0040ae2a
test al, al
jne 0x4017dd
mov dword [esp + 0x2f8], 0x3d
mov ecx, ebx
push 0x3d
call fcn.0040ae2a
test al, al
je 0x4017a0
cmp edi, esi
jne 0x401781
mov ecx, dword [esp + 4]
test ecx, ecx
lea ebx, [esp + 0x198]
mov eax, 4
je 0x40181b
mov dword [esp + 0x194], 8
push 8
call fcn.0040ae2a
movzx eax, al
xor eax, 3
jmp 0x40181b
mov eax, 4
lea ebx, [esp + 0x198]
mov dword [esp + 0x78], eax
mov dword [esp + 0x190], 0x10
lea ecx, [esp + 0x2f8]
push 0x10
push ebx
call fcn.0040ae30
mov esi, dword [esp + 0xb4]
test esi, esi
je 0x401891
mov edi, dword [esp + 0xb8]
mov eax, esi
cmp edi, esi
jne 0x401867
jmp 0x401881
add edi, 0xfffffff4
cmp edi, esi
je 0x40187a
test byte [edi - 0xc], 1
je 0x401860
push dword [edi - 4]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x401860
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb8], esi
push eax
call sub.libc.dll_operator_delete_void_
add esp, 4
movsd xmm0, qword [esp + 0x2f8]
movsd qword [esp + 0xb4], xmm0
mov eax, dword [esp + 0x300]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x18c], 0x13
mov dword [esp + 0x108], 0x40b06a
mov dword [esp + 0x10c], 0
sub esp, 0xc
movsd xmm0, qword [esp + 0x114]
movsd qword [esp + 4], xmm0
mov dword [esp], 0x13
lea ecx, [esp + 0x1a4]
call fcn.0040ae36
test eax, eax
je 0x401923
mov ebx, edx
cmp edx, 0xfffffff8
jae 0x402f48
cmp ebx, 0xb
jae 0x40194d
mov ecx, ebx
add cl, bl
mov byte [esp + 0x2f8], cl
lea esi, [esp + 0x2f9]
test ebx, ebx
jne 0x401982
jmp 0x40198d
xorps xmm0, xmm0
movsd qword [esp + 0x2f8], xmm0
mov dword [esp + 0x300], 0
lea esi, [esp + 0x84]
test byte [esp + 0x84], 1
jne 0x4019a2
jmp 0x4019b1
mov edi, ebx
or ebx, 7
lea ecx, [ebx + 1]
push ecx
mov dword [esp + 8], eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x300], esi
add ebx, 2
mov dword [esp + 0x2f8], ebx
mov ebx, edi
mov dword [esp + 0x2fc], edi
push ebx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
lea esi, [esp + 0x84]
test byte [esp + 0x84], 1
je 0x4019b1
push dword [esp + 0x8c]
call sub.libc.dll_operator_delete_void_
add esp, 4
xor edx, edx
cmp dword [esp + 8], 0xffffffff
sete dl
mov eax, dword [esp + 0x300]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x2f8]
movsd qword [esi], xmm0
mov dword [esp + 0xd8], 0x17
mov dword [esp + 0x188], 0x30
mov eax, dword [esp + 0xd8]
lea esi, [esp + 0x198]
mov ecx, esi
mov dword [esp + 4], edx
push edx
push 0x30
push eax
call fcn.0040ae3c
mov byte [esp + 0x7d], al
mov dword [esp + 0xd4], 0x1b
mov dword [esp + 0x100], 0x40b06a
mov dword [esp + 0x104], 0
sub esp, 0xc
movsd xmm0, qword [esp + 0x10c]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, esi
call fcn.0040ae36
test eax, eax
je 0x401a79
mov ebx, edx
cmp edx, 0xfffffff8
jae 0x402f48
cmp ebx, 0xb
jae 0x401aa3
mov ecx, ebx
add cl, bl
mov byte [esp + 0x2f8], cl
lea esi, [esp + 0x2f9]
test ebx, ebx
jne 0x401ad8
jmp 0x401ae3
xorps xmm0, xmm0
movsd qword [esp + 0x2f8], xmm0
mov dword [esp + 0x300], 0
lea esi, [esp + 0xa8]
test byte [esp + 0xa8], 1
jne 0x401af8
jmp 0x401b07
mov edi, ebx
or ebx, 7
lea ecx, [ebx + 1]
push ecx
mov dword [esp + 0x10], eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x300], esi
add ebx, 2
mov dword [esp + 0x2f8], ebx
mov ebx, edi
mov dword [esp + 0x2fc], edi
push ebx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
lea esi, [esp + 0xa8]
test byte [esp + 0xa8], 1
je 0x401b07
push dword [esp + 0xb0]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x300]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x2f8]
movsd qword [esi], xmm0
mov dword [esp + 0xd0], 0x22
mov dword [esp + 0xf8], 0x40b06a
mov dword [esp + 0xfc], 0
sub esp, 0xc
movsd xmm0, qword [esp + 0x104]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
lea ecx, [esp + 0x1a4]
call fcn.0040ae36
test eax, eax
je 0x401b93
mov ebx, edx
cmp edx, 0xfffffff8
jae 0x402f48
cmp ebx, 0xb
jae 0x401bbd
mov ecx, ebx
add cl, bl
mov byte [esp + 0x2f8], cl
lea esi, [esp + 0x2f9]
test ebx, ebx
jne 0x401bf2
jmp 0x401bfd
xorps xmm0, xmm0
movsd qword [esp + 0x2f8], xmm0
mov dword [esp + 0x300], 0
lea esi, [esp + 0x9c]
test byte [esp + 0x9c], 1
jne 0x401c12
jmp 0x401c21
mov edi, ebx
or ebx, 7
lea ecx, [ebx + 1]
push ecx
mov dword [esp + 0x10], eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x300], esi
add ebx, 2
mov dword [esp + 0x2f8], ebx
mov ebx, edi
mov dword [esp + 0x2fc], edi
push ebx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
lea esi, [esp + 0x9c]
test byte [esp + 0x9c], 1
je 0x401c21
push dword [esp + 0xa4]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x300]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x2f8]
movsd qword [esi], xmm0
lea ecx, [esp + 0x198]
mov edx, 0x26
call fcn.00403200
mov ecx, 2
test eax, eax
jne 0x401cc2
lea ecx, [esp + 0x198]
mov edx, 0x25
call fcn.00403200
mov esi, eax
test eax, eax
je 0x401c99
mov eax, dword [esi + 0x1c]
mov edi, dword [eax]
mov ebx, 2
test edi, edi
je 0x401cb1
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 5
je 0x401c9b
cmp eax, 4
jne 0x401cb1
xor ebx, ebx
cmp dword [edi], 0x656e6f6e
setne bl
add ebx, ebx
jmp 0x401cb1
jmp 0x401cb1
mov eax, 0x726f6873
xor eax, dword [edi]
movzx ecx, byte [edi + 4]
xor ecx, 0x74
xor ebx, ebx
or ecx, eax
setne bl
inc ebx
xor ecx, ecx
cmp dword [esp + 8], 0xffffffff
sete cl
add ecx, ecx
test esi, esi
cmovne ecx, ebx
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x198]
push 0x39
call fcn.004049f0
test eax, eax
je 0x401cf0
mov ebx, eax
mov eax, dword [eax + 0x1c]
mov edi, dword [eax]
test edi, edi
je 0x401cfa
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
jmp 0x401cfc
mov dword [esp + 0xc], 0
jmp 0x401d5b
xor esi, esi
mov dword [esp + 0x258], esi
mov dword [esp + 0x254], edi
sub esp, 0x10
movsd xmm0, qword [esp + 0x264]
movsd qword [esp], xmm0
lea eax, [esp + 0x308]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040ad58
add esp, 0x10
test al, al
jne 0x402efd
mov ecx, dword [esp + 0x2f8]
mov eax, ecx
sar eax, 0x1f
xor eax, dword [esp + 0x2fc]
jne 0x402efd
mov dword [esp + 0xc], ecx
lea esi, [esp + 0x198]
mov ecx, esi
mov edx, 0x3c
call fcn.00403200
test eax, eax
setne byte [esp + 0x7e]
mov dword [esp + 0xcc], 0x3f
mov dword [esp + 0x184], 0x32
mov eax, dword [esp + 0xcc]
mov ecx, esi
push dword [esp + 4]
push 0x32
push eax
call fcn.0040ae3c
mov byte [esp + 0x7f], al
mov ecx, esi
mov edx, 0x18
call fcn.00403200
test eax, eax
setne byte [esp + 0x80]
mov byte [esp + 0x7c], 1
mov ecx, esi
mov edx, 0xb
call fcn.00403200
test eax, eax
je 0x401e6a
lea ecx, [esp + 0x198]
push 0xb
call fcn.004049f0
test eax, eax
je 0x401dfd
mov ebx, eax
mov eax, dword [eax + 0x1c]
mov edi, dword [eax]
test edi, edi
je 0x401e0a
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
jmp 0x401e0c
mov dword [esp + 0xc0], 0
jmp 0x401e6a
xor esi, esi
mov dword [esp + 0x258], esi
mov dword [esp + 0x254], edi
sub esp, 0x10
movsd xmm0, qword [esp + 0x264]
movsd qword [esp], xmm0
lea eax, [esp + 0x308]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040ad5e
add esp, 0x10
test al, al
jne 0x402efd
cmp dword [esp + 0x2fc], 0
jne 0x402efd
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0xc0], eax
lea esi, [esp + 0x198]
mov ecx, esi
mov edx, 4
call fcn.00403200
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov ecx, esi
mov edx, 0x37
call fcn.00403200
mov dword [esp + 0x30], eax
mov ecx, esi
mov edx, 0x40
call fcn.00403200
mov dword [esp + 0x2c], eax
mov dword [esp + 0x254], 0x19
lea eax, [esp + 0x254]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], 1
sub esp, 8
movsd xmm0, qword [esp + 0x300]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.0040ae42
mov esi, edx
mov ecx, dword [esp + 0x19c]
lea edi, [ecx + eax*4]
cmp eax, edx
je 0x401f3c
mov dword [esp + 0x10], ecx
lea ebx, [esi*4]
shl eax, 2
sub ebx, eax
jmp 0x401f1c
add edi, 4
add ebx, 0xfffffffc
je 0x4021a2
mov ecx, dword [edi]
test ecx, ecx
je 0x401f10
mov dword [esp + 0x254], 0x19
push 0x19
call fcn.0040ae2a
test al, al
je 0x401f10
mov ecx, dword [esp + 0x10]
lea ebx, [ecx + esi*4]
cmp edi, ebx
je 0x4021a2
mov eax, dword [edi]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x2f8], eax
test eax, eax
je 0x401f70
push eax
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x401f72
xor eax, eax
mov dword [esp + 0x2fc], eax
mov ecx, dword [esp + 0x2f8]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], ecx
sub esp, 0xc
movsd xmm0, qword [esp + 0xfc]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.0040ad94
add esp, 0xc
cmp edx, 5
jne 0x401fcc
mov ecx, dword [eax]
mov edx, 0x5953642e
xor ecx, edx
movzx eax, byte [eax + 4]
xor eax, 0x4d
or eax, ecx
je 0x4020ec
call fcn.0040ad9a
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x1c
ja 0x402000
mov ecx, eax
push 0x1d
push str.Warning:_invalid_dSYM_hint:__
call fcn.0040ad40
mov ecx, dword [eax + 0x10]
jmp 0x40201e
movups xmm0, xmmword [0x40b078]
movups xmmword [ecx + 0xd], xmm0
movups xmm0, xmmword [str.Warning:_invalid_dSYM_hint:__]
movups xmmword [ecx], xmm0
mov ecx, dword [eax + 0x10]
add ecx, 0x1d
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x2f8]
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x2fc]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, esi
jae 0x402050
mov ecx, eax
push esi
push dword [esp + 0x14]
call fcn.0040ad40
mov ecx, dword [eax + 0x10]
jmp 0x402073
mov edx, dword [esp + 0x10]
test esi, esi
je 0x402073
push esi
push edx
push ecx
mov dword [esp + 0x1c], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x1c]
add esp, 0xc
add esi, dword [eax + 0x10]
mov dword [eax + 0x10], esi
mov ecx, esi
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, 0x24
ja 0x402090
mov ecx, eax
push 0x25
push str.___must_have_the_.dSYM_extension_._n
call fcn.0040ad40
jmp 0x4020c0
movsd xmm0, qword [0x40b0a6]
movsd qword [ecx + 0x1d], xmm0
movups xmm0, xmmword [0x40b099]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.___must_have_the_.dSYM_extension_._n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x25
nop word cs:[eax + eax]
add edi, 4
cmp edi, ebx
je 0x4021a2
mov ecx, dword [edi]
test ecx, ecx
je 0x4020c0
mov dword [esp + 0x2f8], 0x19
push 0x19
call fcn.0040ae2a
test al, al
je 0x4020c0
jmp 0x401f3f
mov esi, dword [esp + 0x94]
cmp esi, dword [esp + 0x98]
jae 0x40212f
mov ecx, dword [esp + 0x2fc]
cmp ecx, 0xfffffff8
jae 0x4030c6
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x50], eax
cmp ecx, 0xb
mov dword [esp + 0x10], ecx
jae 0x40214f
mov eax, ecx
add al, cl
mov byte [esi], al
lea eax, [esi + 1]
test ecx, ecx
jne 0x402175
jmp 0x40218f
lea ecx, [esp + 0x90]
lea eax, [esp + 0x2f8]
push eax
call fcn.00407460
mov dword [esp + 0x94], eax
jmp 0x4020c0
mov eax, ecx
or eax, 7
mov dword [esp + 0x6c], eax
inc eax
push eax
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esi + 8], eax
mov edx, dword [esp + 0x6c]
add edx, 2
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esp + 0x6c], eax
push ecx
push dword [esp + 0x54]
push eax
call sub.msvcrt.dll_memmove
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov byte [eax + ecx], 0
add esi, 0xc
mov dword [esp + 0x94], esi
jmp 0x4020c0
lea eax, [esp + 0x74]
lea ecx, [esp + 0x254]
push eax
call fcn.0040ae1e
mov dword [esp + 0xc8], 0x12
mov dword [esp + 0xc4], 0x2f
call fcn.00407a10
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0xc8]
movzx eax, al
lea ecx, [esp + 0x198]
push eax
push edx
push esi
call fcn.0040ae3c
test al, al
je 0x402205
lea ecx, [esp + 0x254]
lea edx, [esp + 0x198]
call fcn.00403120
lea ecx, [esp + 0x198]
mov edx, 0x24
call fcn.00403200
test eax, eax
je 0x402243
call fcn.0040ada0
mov esi, eax
lea ecx, [esp + 0x198]
mov edx, 0xe
call fcn.00403200
test eax, eax
je 0x4022a0
mov cx, 0x100
mov ax, 1
jmp 0x402b23
xor ebx, ebx
cmp dword [esp + 8], 0xffffffff
setne byte [esp + 0x10]
lea ecx, [esp + 0x198]
mov edx, 0x35
call fcn.00403200
test eax, eax
je 0x402303
mov eax, dword [eax + 0x1c]
mov esi, dword [eax]
push 0x40b0af
push esi
call sub.msvcrt.dll_strcmp
add esp, 8
test eax, eax
je 0x402310
push str.JSON
push esi
call sub.msvcrt.dll_strcmp
add esp, 8
xor ecx, ecx
test eax, eax
sete cl
add ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0x402318
lea ecx, [esp + 0x198]
mov edx, 0xd
call fcn.00403200
test eax, eax
je 0x40239d
mov eax, dword [eax + 0x1c]
mov edi, dword [eax]
test edi, edi
je 0x402b13
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 5
je 0x402afd
cmp eax, 6
jne 0x402b13
mov eax, 0x61776c61
xor eax, dword [edi]
movzx ecx, word [edi + 4]
xor ecx, 0x7379
or ecx, eax
jne 0x402b13
mov ax, 0x101
jmp 0x402b15
movzx eax, byte [esp + 0x10]
mov bl, al
mov dword [esp + 0x10], ebx
jmp 0x402318
mov dword [esp + 0x10], 1
lea ecx, [esp + 0x198]
mov edx, 9
call fcn.00403200
test eax, eax
je 0x40236f
lea ecx, [esp + 0x198]
mov edx, 0x33
call fcn.00403200
test eax, eax
je 0x40236f
call fcn.0040ad9a
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2f
ja 0x4023bc
mov ecx, eax
push 0x30
push str.error:_cannot_specify_both___build_id_and___obj_n
call fcn.0040ad40
mov dword [esp + 8], 1
jmp 0x402c12
lea ecx, [esp + 0x198]
push 9
call fcn.004049f0
lea ecx, [esp + 0x44]
test eax, eax
je 0x4023a6
mov edi, eax
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax]
test ebx, ebx
je 0x4023ed
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
jmp 0x4023ef
xor eax, eax
xor ecx, ecx
jmp 0x402b23
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0xa
jmp 0x402429
movups xmm0, xmmword [0x40b0d8]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x40b0c8]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_cannot_specify_both___build_id_and___obj_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x30
mov dword [esp + 8], 1
jmp 0x402c12
xor esi, esi
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], esi
sub esp, 0xc
movsd xmm0, qword [esp + 0x124]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x44]
mov dword [esp], eax
call fcn.0040adac
add esp, 0xc
cmp dword [esp + 0x3c], 0
je 0x40304d
call fcn.0040ada0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
cmp eax, 2
je 0x4024bf
cmp eax, 1
jne 0x402535
xor eax, eax
cmp dword [esp + 0x2c], 0
setne al
mov esi, eax
xor ebx, ebx
cmp dword [esp + 0x30], 0
setne bl
xor eax, eax
cmp dword [esp + 0x14], 0
setne al
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [esp + 4], 0
setne al
mov edi, eax
push 0x18
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
shl esi, 0x18
shl ebx, 0x10
or ebx, esi
mov ecx, dword [esp + 0x14]
shl ecx, 8
or ecx, ebx
or edi, ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x407610
mov dword [eax + 0xc], fcn.00403330
mov dword [eax + 0x10], edi
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x14], ecx
mov ecx, dword [sym.imp.libLLVM_18.dll_vtable_for_llvm::symbolize::GNUPrinter]
jmp 0x4025a7
xor eax, eax
cmp dword [esp + 0x2c], 0
setne al
mov esi, eax
xor ebx, ebx
cmp dword [esp + 0x30], 0
setne bl
xor eax, eax
cmp dword [esp + 0x14], 0
setne al
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [esp + 4], 0
setne al
mov edi, eax
push 0x14
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
shl esi, 0x18
shl ebx, 0x10
or ebx, esi
mov ecx, dword [esp + 0x14]
shl ecx, 8
or ecx, ebx
or edi, ecx
mov ecx, dword [sym.imp.libLLVM_18.dll_vtable_for_llvm::symbolize::JSONPrinter]
add ecx, 8
mov dword [eax], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov ecx, dword [esp + 0xc]
mov dword [eax + 0xc], ecx
mov dword [esp + 4], eax
mov dword [eax + 0x10], 0
jmp 0x4025b0
xor eax, eax
cmp dword [esp + 0x2c], 0
setne al
mov esi, eax
xor ebx, ebx
cmp dword [esp + 0x30], 0
setne bl
xor eax, eax
cmp dword [esp + 0x14], 0
setne al
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [esp + 4], 0
setne al
mov edi, eax
push 0x18
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
shl esi, 0x18
shl ebx, 0x10
or ebx, esi
mov ecx, dword [esp + 0x14]
shl ecx, 8
or ecx, ebx
or edi, ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x407610
mov dword [eax + 0xc], fcn.00403330
mov dword [eax + 0x10], edi
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x14], ecx
mov ecx, dword [sym.imp.libLLVM_18.dll_vtable_for_llvm::symbolize::LLVMPrinter]
add ecx, 8
mov dword [esp + 4], eax
mov dword [eax], ecx
lea ebx, [esp + 0x198]
mov ecx, ebx
mov edx, 0x33
call fcn.00403200
test eax, eax
je 0x40268b
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0x1c]
mov esi, dword [eax]
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff8
jae 0x402f48
mov ecx, eax
cmp eax, 0xb
jae 0x402605
mov eax, ecx
add al, cl
mov byte [esp + 0x2f8], al
lea edi, [esp + 0x2f9]
test ecx, ecx
jne 0x40263b
jmp 0x40264a
mov ebx, ecx
or ebx, 7
lea eax, [ebx + 1]
push eax
mov edi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, edi
add esp, 4
mov edi, eax
mov dword [esp + 0x300], eax
add ebx, 2
mov dword [esp + 0x2f8], ebx
lea ebx, [esp + 0x198]
mov dword [esp + 0x2fc], ecx
push ecx
push esi
push edi
mov esi, ecx
call sub.msvcrt.dll_memmove
mov ecx, esi
add esp, 0xc
mov byte [edi + ecx], 0
lea ecx, [esp + 0x58]
lea eax, [esp + 0x2f8]
push eax
lea eax, [esp + 0x258]
push eax
call fcn.0040ae18
test byte [esp + 0x2f8], 1
je 0x402680
push dword [esp + 0x300]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x5c], 1
jne 0x4027ca
mov dword [esp + 0x180], 2
lea ecx, [esp + 0x58]
push 2
push ebx
call fcn.0040ae30
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x5c]
je 0x40280e
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
cmp edi, eax
jne 0x4027a6
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
call dword [eax + 0x24]
mov esi, dword [esp + 0x58]
test esi, esi
je 0x402801
mov edi, dword [esp + 0x5c]
mov eax, esi
cmp edi, esi
jne 0x40270b
jmp 0x4027f4
add edi, 0xfffffff4
cmp edi, esi
je 0x4027f0
test byte [edi - 0xc], 1
je 0x402700
push dword [edi - 4]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x402700
mov ecx, dword [edi + 8]
mov ebx, dword [edi + 4]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ebx
sub esp, 0x24
movzx ecx, byte [esp + 0x30]
mov al, cl
movsd xmm0, qword [esp + 0x104]
movsd qword [esp + 0x14], xmm0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x278]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp], esi
lea ecx, [esp + 0x1bc]
call fcn.00403460
add esp, 0x24
add edi, 0xc
cmp edi, dword [esp + 0x14]
je 0x4026cd
xor eax, eax
cmp dword [esp + 8], 0xffffffff
setne cl
movzx ebx, byte [edi]
test bl, 1
mov byte [esp + 0xc], cl
jne 0x402720
lea ecx, [edi + 1]
shr ebx, 1
jmp 0x402726
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x2f8], eax
test eax, eax
je 0x402d4e
push eax
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x402d50
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], esi
push eax
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp + 8], 0
jmp 0x402ecd
push 0
call dword [0x410010]
add esp, 4
push eax
push 0x400
lea esi, [esp + 0x300]
push esi
call sub.msvcrt.dll_fgets
add esp, 0xc
test eax, eax
je 0x4026d6
lea edi, [esp + 0x19]
jmp 0x402864
push 0
call dword [0x410010]
add esp, 4
push eax
push 0x400
push esi
call sub.msvcrt.dll_fgets
add esp, 0xc
test eax, eax
mov edi, ebx
je 0x4026d6
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff8
jae 0x402f54
mov ebx, eax
cmp eax, 0xb
jae 0x402890
mov eax, ebx
add al, bl
mov byte [esp + 0x18], al
mov esi, edi
test ebx, ebx
jne 0x4028b6
jmp 0x4028c8
mov edi, ebx
or edi, 7
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov dword [esp + 0x20], eax
add edi, 2
mov dword [esp + 0x18], edi
lea edi, [esp + 0x19]
mov dword [esp + 0x1c], ebx
push ebx
lea eax, [esp + 0x2fc]
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
movzx eax, byte [esp + 0x18]
mov ebx, eax
shr ebx, 1
and al, 1
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], esi
cmove esi, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
cmove eax, ebx
lea ecx, [esi + eax]
mov dword [esp + 0xc], ecx
mov ecx, esi
test eax, eax
je 0x402930
mov edx, eax
mov ecx, esi
nop word cs:[eax + eax]
movzx edi, byte [ecx]
cmp edi, 0xa
je 0x402930
cmp edi, 0xd
je 0x402930
inc ecx
dec edx
jne 0x402910
lea edi, [esp + 0x19]
mov eax, dword [esp + 0xc]
jmp 0x402a0a
mov edi, dword [esp + 0xc]
cmp ecx, edi
je 0x402a00
lea edx, [ecx + 1]
cmp edx, edi
je 0x402a04
add esi, eax
sub esi, ecx
lea eax, [esi - 1]
and eax, 3
lea edi, [esp + 0x19]
jne 0x402994
add esi, 0xfffffffe
cmp esi, 3
mov esi, dword [esp + 0xc]
jae 0x4029b7
movzx ebx, byte [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, ebx
and al, 1
mov dword [esp + 0x14], eax
shr ebx, 1
mov eax, ecx
jmp 0x402a12
inc edx
dec eax
je 0x402957
movzx ebx, byte [edx]
cmp ebx, 0xa
je 0x402990
cmp ebx, 0xd
je 0x402990
mov byte [ecx], bl
inc ecx
jmp 0x402990
add edx, 4
cmp edx, esi
je 0x402963
movzx eax, byte [edx]
cmp eax, 0xa
je 0x4029c7
cmp eax, 0xd
je 0x4029c7
mov byte [ecx], al
inc ecx
movzx eax, byte [edx + 1]
cmp eax, 0xa
je 0x4029d8
cmp eax, 0xd
je 0x4029d8
mov byte [ecx], al
inc ecx
movzx eax, byte [edx + 2]
cmp eax, 0xa
je 0x4029e9
cmp eax, 0xd
je 0x4029e9
mov byte [ecx], al
inc ecx
movzx eax, byte [edx + 3]
cmp eax, 0xa
je 0x4029b0
cmp eax, 0xd
je 0x4029b0
mov byte [ecx], al
inc ecx
jmp 0x4029b0
mov eax, edi
jmp 0x402a06
mov eax, ecx
lea edi, [esp + 0x19]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
xor ecx, ecx
cmp dword [esp + 8], 0xffffffff
setne cl
mov dword [esp + 0xc], ecx
cmp byte [esp + 0x14], 0
cmovne ebx, esi
cmove edx, edi
add ebx, edx
sub ebx, eax
sub eax, edx
lea ecx, [esp + 0x18]
push ebx
push eax
call fcn.0040ae84
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
movzx ecx, byte [esp + 0x18]
mov esi, ecx
shr esi, 1
test cl, 1
mov ecx, dword [esp + 0x20]
mov ebx, edi
cmove ecx, edi
mov dword [esp + 0xe8], ecx
cmovne esi, dword [esp + 0x1c]
mov dword [esp + 0xec], esi
sub esp, 0x24
movsd xmm0, qword [esp + 0x10c]
movsd qword [esp + 0x14], xmm0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x278]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov dword [esp], eax
lea ecx, [esp + 0x1bc]
call fcn.00403460
add esp, 0x24
call fcn.0040ada0
mov ecx, dword [eax + 0x10]
cmp ecx, dword [eax + 8]
je 0x402ada
mov ecx, eax
call fcn.0040ad3a
test byte [esp + 0x18], 1
lea esi, [esp + 0x2f8]
je 0x402840
push dword [esp + 0x20]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x402840
mov eax, 0x6576656e
xor eax, dword [edi]
movzx ecx, byte [edi + 4]
xor ecx, 0x72
or ecx, eax
je 0x402ef4
xor eax, eax
movzx eax, ax
mov ecx, eax
and ecx, 0x100
and eax, 1
movzx eax, ax
movzx ecx, cx
or ecx, eax
mov word [esp + 0x18], cx
sub esp, 0xc
mov word [esp + 8], cx
lea eax, [esp + 0x260]
mov dword [esp + 4], eax
mov dword [esp], esi
lea ecx, [esp + 0x304]
call fcn.0040add0
xorps xmm0, xmm0
movsd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], 0
lea esi, [esp + 0x38]
nop word [eax + eax]
mov edi, dword [sym.imp.libc.dll_std::__1::cin]
mov eax, dword [edi]
mov eax, dword [eax - 0xc]
add eax, edi
lea edi, [esp + 0x58]
mov ecx, edi
push eax
call fcn.0040ae7e
mov ecx, edi
push dword [sym.imp.libc.dll_std::__1::ctype_char_::id]
call fcn.0040ae78
mov edx, dword [eax]
mov ecx, eax
push 0xa
call dword [edx + 0x1c]
mov ebx, eax
mov ecx, edi
call fcn.0040aea8
movsx eax, bl
push eax
push esi
push dword [sym.imp.libc.dll_std::__1::cin]
call fcn.004047f0
add esp, 0xc
mov ecx, dword [eax]
mov ecx, dword [ecx - 0xc]
test byte [eax + ecx + 0x10], 5
jne 0x402bdf
mov ecx, esi
push 0xa
call fcn.0040ae96
lea ecx, [esp + 0x2f8]
push esi
call fcn.0040adc4
jmp 0x402b70
lea ecx, [esp + 0x2f8]
call fcn.0040adca
test byte [esp + 0x38], 1
je 0x402bfe
push dword [esp + 0x40]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea ecx, [esp + 0x2f8]
call fcn.004046e0
mov dword [esp + 8], 0
lea ecx, [esp + 0x254]
call fcn.0040ae24
lea ecx, [esp + 0x74]
call fcn.00404180
lea ecx, [esp + 0x198]
call fcn.00404260
mov dword [esp + 0x6fc], 0x40cb40
mov eax, dword [esp + 0x730]
lea ecx, [esp + 0x73c]
cmp eax, ecx
je 0x402c59
push eax
call sub.msvcrt.dll_free
add esp, 4
lea ecx, [esp + 0x6fc]
call fcn.0040ad7c
mov edi, dword [esp + 0x12c]
test edi, edi
je 0x402cb7
mov ebx, dword [esp + 0x128]
shl edi, 2
xor esi, esi
nop dword [eax]
lea ecx, [ebx + esi]
sub ecx, dword [esp + 0x128]
sar ecx, 2
shr ecx, 7
cmp ecx, 0x1e
mov eax, 0x1e
cmovae ecx, eax
mov eax, 0x1000
shl eax, cl
push 8
push eax
push dword [ebx + esi]
call fcn.0040ad52
add esp, 0xc
add esi, 4
cmp edi, esi
jne 0x402c80
mov esi, dword [esp + 0x144]
mov eax, dword [esp + 0x148]
test eax, eax
je 0x402d3a
lea edi, [esi + eax*8]
lea ebx, [esp + 0x134]
nop word cs:[eax + eax]
push 8
push dword [esi + 4]
push dword [esi]
call fcn.0040ad52
add esp, 0xc
add esi, 8
cmp esi, edi
jne 0x402ce0
mov esi, dword [esp + 0x144]
lea eax, [esp + 0x150]
cmp esi, eax
je 0x402d11
push esi
call sub.msvcrt.dll_free
add esp, 4
mov eax, dword [esp + 0x128]
cmp eax, ebx
je 0x402d25
push eax
call sub.msvcrt.dll_free
add esp, 4
lea ecx, [esp + 0x37]
call fcn.0040ad88
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ebx, [esp + 0x134]
lea eax, [esp + 0x150]
cmp esi, eax
jne 0x402d08
jmp 0x402d11
xor eax, eax
lea esi, [esp + 0x2f8]
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x304], 0
mov dword [esp + 0x300], 0
mov byte [esp + 0x308], 1
mov dword [esp + 0x314], 0
mov dword [esp + 0x310], 0
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x58], 0
test ebx, ebx
je 0x402ea9
mov eax, dword [ebx]
mov edx, dword [sym.imp.libLLVM_18.dll_llvm::ErrorList::ID]
mov ecx, ebx
push edx
call dword [eax + 0x18]
test al, al
je 0x402e7f
mov edi, dword [ebx + 4]
mov dword [esp + 8], ebx
mov esi, dword [ebx + 8]
cmp edi, esi
je 0x402ea0
xor ebx, ebx
jmp 0x402deb
add edi, 4
cmp edi, esi
je 0x402ea0
mov dword [esp + 0x158], ebx
mov ebx, dword [edi]
mov dword [edi], 0
mov eax, dword [ebx]
mov ecx, ebx
push dword [sym.imp.libLLVM_18.dll_llvm::ErrorInfoBase::ID]
call dword [eax + 0x18]
test al, al
je 0x402e26
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
push ebx
lea edx, [esp + 0x2fc]
push edx
call dword [eax + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
xor ebx, ebx
mov dword [esp + 0x16c], ebx
lea eax, [esp + 0x16c]
push eax
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00405bc0
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x16c]
test ecx, ecx
je 0x402e66
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x158]
test ecx, ecx
je 0x402de0
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x402de0
mov eax, dword [ebx]
mov edx, dword [sym.imp.libLLVM_18.dll_llvm::ErrorInfoBase::ID]
mov ecx, ebx
push edx
call dword [eax + 0x18]
test al, al
je 0x402ea9
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
mov dword [esp + 8], ebx
push ebx
push esi
call dword [eax + 0x1c]
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x5c], 1
je 0x402ec5
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x58], 0
test ecx, ecx
je 0x402ec5
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 8], 1
lea esi, [esp + 0x44]
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x402c12
push eax
call sub.msvcrt.dll_free
add esp, 4
jmp 0x402c12
mov ax, 0x100
jmp 0x402b15
call fcn.0040ad9a
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov word [esp + 0x48], 0x305
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], str.:_expected_a_non_negative_integer__but_got_
mov word [esp + 0x68], 0x105
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], esi
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x3c]
push eax
lea esi, [esp + 0x25c]
jmp 0x40300b
lea ecx, [esp + 0x2f8]
call fcn.004046c0
lea ecx, [esp + 0x18]
call fcn.004046c0
push 1
call sub.msvcrt.dll_exit
call fcn.0040ada0
mov ecx, esi
mov edx, ebx
push eax
lea eax, [esp + 0x700]
push eax
call fcn.00404360
add esp, 8
push 0
call sub.msvcrt.dll_exit
call fcn.0040ada0
mov dword [esp + 0x254], esi
mov dword [esp + 0x258], ebx
sub esp, 8
movsd xmm0, qword [esp + 0x25c]
movsd qword [esp], xmm0
mov ecx, eax
call fcn.004030d0
mov ecx, eax
push 0xa
call fcn.004044e0
call fcn.0040ad6a
push 0
call sub.msvcrt.dll_exit
call fcn.0040ad9a
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov word [esp + 0x48], 0x305
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], str.:_expected_a_non_negative_integer__but_got_
mov word [esp + 0x68], 0x105
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], esi
lea eax, [esp + 0x58]
lea esi, [esp + 0x254]
push eax
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.00404620
add esp, 0xc
mov dword [esp + 0x18], 0x40c9c1
mov word [esp + 0x28], 0x103
lea eax, [esp + 0x18]
push eax
push esi
lea esi, [esp + 0x300]
push esi
call fcn.00404620
add esp, 0xc
push esi
push dword [esp + 0xc]
call fcn.00404600
add esp, 8
push 1
call sub.msvcrt.dll_exit
call fcn.0040ad9a
mov dword [esp + 8], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov word [esp + 0x28], 0x305
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], str.:_expected_a_build_ID__but_got_
mov word [esp + 0x168], 0x105
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], esi
lea eax, [esp + 0x158]
lea ecx, [esp + 0x18]
lea esi, [esp + 0x58]
push eax
push ecx
push esi
call fcn.00404620
add esp, 0xc
mov dword [esp + 0x16c], 0x40c9be
mov word [esp + 0x17c], 0x103
lea eax, [esp + 0x16c]
jmp 0x403027
mov ecx, esi
call fcn.004046c0
int3