Function at 0x40dcc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x190
mov dword [esp + 0x80], edx
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x1c], ecx
je 0x40dfad
cmp byte [0x424a59], 0
jne 0x40dfad
lea eax, [ebp + 0x20]
cmp dword [eax + 4], 0
je 0x40dd22
mov edi, dword [eax]
mov esi, dword [eax + 4]
call fcn.0041cc44
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40dd38
mov byte [ecx], 0xa
inc dword [eax + 0x10]
call fcn.0041cc44
cmp dword [ebp + 0x14], 0
jne 0x40dd5c
jmp 0x40ddc5
call fcn.0041ce0c
mov edi, eax
mov esi, edx
call fcn.0041cc44
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
jne 0x40dd0c
mov dword [esp + 4], 1
mov dword [esp], 0x41eb4f
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
call fcn.0041cc44
cmp dword [ebp + 0x14], 0
je 0x40ddc5
cmp byte [ebp + 0x28], 0
je 0x40ddc5
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
mov ebx, dword [ebp + 0x14]
cmp edx, ebx
jae 0x40de0a
mov dword [esp + 4], ebx
mov ecx, dword [ebp + 0x10]
mov dword [esp], ecx
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40de33
mov byte [ecx], 0x28
mov ecx, dword [eax + 0x10]
inc ecx
mov dword [eax + 0x10], ecx
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, esi
jae 0x40de5c
mov dword [esp + 4], esi
mov dword [esp], edi
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
mov ecx, dword [eax + 0x10]
jmp 0x40de7c
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, esi
jae 0x40dddd
mov dword [esp + 4], esi
mov dword [esp], edi
jmp 0x40dea2
test esi, esi
je 0x40de87
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], ecx
mov edi, eax
call sub.msvcrt.dll_memcpy
add dword [edi + 0x10], esi
mov esi, dword [ebp + 0x1c]
test esi, esi
jne 0x40deb7
jmp 0x40df73
mov dword [esp + 8], ebx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov ebx, eax
call sub.msvcrt.dll_memcpy
mov eax, ebx
mov ecx, dword [ebx + 0x10]
add ecx, dword [ebp + 0x14]
mov dword [ebx + 0x10], ecx
cmp dword [eax + 0xc], ecx
jne 0x40dd95
mov dword [esp + 4], 1
mov dword [esp], 0x41ec51
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, esi
jb 0x40ddac
test esi, esi
je 0x40de7c
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], ecx
mov edi, eax
call sub.msvcrt.dll_memcpy
mov eax, edi
add esi, dword [edi + 0x10]
mov dword [edi + 0x10], esi
mov ecx, esi
cmp dword [eax + 0xc], ecx
je 0x40de93
mov byte [ecx], 0x29
inc dword [eax + 0x10]
mov esi, dword [ebp + 0x1c]
test esi, esi
jne 0x40deb7
jmp 0x40df73
mov dword [esp + 4], 1
mov dword [esp], 0x41ebf3
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x40df73
call fcn.0041cc44
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x12
ja 0x40df1b
mov dword [esp + 4], 0x13
mov dword [esp], str.__for_architecture
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, esi
jb 0x40df3e
mov dword [esp + 8], esi
mov edx, dword [ebp + 0x18]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov esi, eax
call sub.msvcrt.dll_memcpy
mov eax, esi
mov ecx, dword [esi + 0x10]
add ecx, dword [ebp + 0x1c]
mov dword [esi + 0x10], ecx
cmp dword [eax + 0xc], ecx
je 0x40df5a
mov byte [ecx], 0x29
inc dword [eax + 0x10]
jmp 0x40df73
movups xmm0, xmmword [str.__for_architecture]
movups xmmword [ecx], xmm0
mov dword [ecx + 0xf], 0x20657275
mov ecx, dword [eax + 0x10]
add ecx, 0x13
mov dword [eax + 0x10], ecx
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, esi
jae 0x40deee
mov dword [esp + 4], esi
mov ecx, dword [ebp + 0x18]
mov dword [esp], ecx
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
jne 0x40df13
mov dword [esp + 4], 1
mov dword [esp], 0x41ebf3
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
call fcn.0041cc44
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 1
ja 0x40dfa0
mov dword [esp + 4], 2
mov dword [esp], 0x41ecb6
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
jmp 0x40dfa9
mov word [ecx], 0xa3a
add dword [eax + 0x10], 2
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [esp], ecx
lea esi, [esp + 0xb0]
mov ecx, esi
call dword [eax + 0x18]
sub esp, 4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edx, [esp + 0x144]
mov ecx, dword [esp + 0x1c]
mov dword [esp], ecx
mov ecx, edx
call dword [eax + 0x1c]
sub esp, 4
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x140], eax
movsd xmm0, qword [esp + 0xb0]
movsd qword [esp + 0x138], xmm0
mov dword [esp + 0x84], 0
cmp byte [0x424a44], 0
mov edx, 0
mov dword [esp + 0x5c], 0
je 0x40e35f
mov eax, dword [edi + 4]
add eax, 0xffffffef
cmp eax, 0xfffffffb
ja 0x40e0e1
mov dword [esp + 0xb0], str.File_format_has_no_dynamic_symbol_table
mov word [esp + 0xc0], 0x103
mov dword [esp], 0x1c
mov ebx, edi
call sub.libc.dll_operator_new_unsigned_int_
mov edi, eax
call fcn.0041cc92
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], 3
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], esi
mov ecx, edi
call fcn.0041cbb4
sub esp, 0xc
mov dword [esp + 0x134], edi
mov ecx, ebx
call fcn.0041ce0c
mov dword [esp + 0x188], 0
mov dword [esp + 0x184], 0
movsd xmm0, qword [esp + 0x184]
movsd qword [esp + 4], xmm0
mov dword [esp], edx
lea ecx, [esp + 0x134]
mov edx, eax
call fcn.0040b080
mov ecx, dword [esp + 0x134]
test ecx, ecx
je 0x40f6a0
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40f6a0
mov eax, dword [edi]
mov dword [esp], edi
lea ecx, [esp + 0xb0]
call dword [eax + 0x108]
sub esp, 4
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xc4]
lea esi, [esp + 0x144]
mov dword [esi + 8], edx
mov edx, dword [esp + 0xb4]
movsd xmm0, qword [esp + 0xbc]
movsd qword [esi], xmm0
mov dword [esp + 0x138], ecx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], edx
mov eax, dword [edi + 4]
add eax, 0xffffffef
mov edx, 0
mov dword [esp + 0x5c], 0
cmp eax, 0xfffffffc
jb 0x40e35f
mov dword [esp], edi
lea ecx, [esp + 0xb0]
call fcn.0041cdfa
sub esp, 4
test byte [esp + 0xbc], 1
jne 0x40e191
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x5c], eax
jmp 0x40e35b
call fcn.0041cc3e
mov ecx, dword [0x424a90]
mov edx, dword [0x424a94]
mov dword [esp + 0x180], edx
mov dword [esp + 0x17c], ecx
movsd xmm0, qword [esp + 0x17c]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0041ccc2
mov esi, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, 0x1f
ja 0x40e1fb
mov dword [esp + 4], 0x20
mov dword [esp], str.unable_to_read_symbol_versions:
mov ecx, esi
call fcn.0041cbc6
sub esp, 8
mov esi, eax
jmp 0x40e214
movups xmm0, xmmword [0x41ecc9]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.unable_to_read_symbol_versions:]
movups xmmword [eax], xmm0
add dword [esi + 0x10], 0x20
xor eax, eax
test byte [esp + 0xbc], 1
je 0x40e232
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb0], 0
mov dword [esp + 0x130], eax
lea eax, [esp + 0x130]
mov dword [esp + 4], eax
lea eax, [esp + 0x30]
mov dword [esp], eax
call fcn.0041ccb6
movzx eax, byte [esp + 0x30]
test al, 1
je 0x40e263
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
jmp 0x40e269
shr eax, 1
lea ecx, [esp + 0x31]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov ecx, esi
call fcn.0041cbc6
sub esp, 8
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40e31a
mov byte [ecx], 0xa
inc dword [eax + 0x10]
test byte [esp + 0x30], 1
je 0x40e29f
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x40e2af
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esp + 0xb0]
test byte [esp + 0xbc], 1
jne 0x40e2fa
mov dword [esp + 0x5c], 0
test esi, esi
je 0x40e359
mov edi, dword [esp + 0xb4]
mov eax, esi
cmp edi, esi
jne 0x40e2e7
jmp 0x40e34a
add edi, 0xfffffff0
cmp edi, esi
je 0x40e343
test byte [edi - 0x10], 1
je 0x40e2e0
mov eax, dword [edi - 8]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
jmp 0x40e2e0
mov dword [esp + 0xb0], 0
mov dword [esp + 0x5c], 0
test esi, esi
je 0x40e359
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x40e359
mov dword [esp + 4], 1
mov dword [esp], 0x41eb4f
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
test byte [esp + 0x30], 1
jne 0x40e293
jmp 0x40e29f
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb4], esi
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
xor edx, edx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x9c], edx
mov edx, dword [edi + 4]
add edx, 0xffffffeb
mov esi, edi
cmp edx, 0xfffffffc
mov eax, 0
cmovb esi, eax
mov dword [esp + 0xac], esi
jb 0x40e576
mov eax, dword [0x424a80]
cmp dword [0x424a7c], eax
je 0x40e576
mov dword [esp + 0x7c], edx
mov eax, dword [edi]
mov dword [esp], edi
lea ecx, [esp + 0x30]
mov esi, edi
call dword [eax + 0xb0]
sub esp, 4
mov eax, dword [edi]
lea ecx, [esp + 0xbc]
mov dword [esp], edi
call dword [eax + 0xb4]
sub esp, 4
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb8], eax
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0x38], eax
movsd qword [esp + 0x30], xmm0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x68], eax
movsd xmm0, qword [esp + 0xbc]
movsd qword [esp + 0x60], xmm0
mov dword [esp + 0x84], 1
jmp 0x40e43a
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
lea edx, [esp + 0x30]
mov dword [esp], edx
call dword [eax + 0x44]
sub esp, 4
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x38], eax
jne 0x40e45c
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
xor ecx, dword [esp + 0x64]
or ecx, eax
je 0x40f397
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x11c], esi
mov dword [esp + 0x118], ebx
mov ecx, dword [esp + 0xac]
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x118]
movsd qword [esp + 4], xmm0
mov dword [esp], ecx
lea ecx, [esp + 0x90]
call dword [eax + 0x48]
sub esp, 0xc
test byte [esp + 0x98], 1
jne 0x40e4c0
mov eax, dword [esp + 0x90]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x94]
jmp 0x40e4e5
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x90], 0
xor edi, edi
test ecx, ecx
je 0x40e4dd
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], esi
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0xac]
call fcn.0041cdc4
sub esp, 8
mov esi, dword [0x424a7c]
cmp edx, dword [esi + 4]
jne 0x40e420
test edx, edx
je 0x40e534
mov ecx, dword [esi]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x40e420
cmp edi, dword [esi + 0xc]
jne 0x40e420
test edi, edi
je 0x40e560
mov eax, dword [esi + 8]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x40e420
cmp dword [esp + 0x84], 0
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
je 0x40f3fb
cmp edx, 0xfffffffc
jb 0x40e588
cmp byte [0x424a50], 0
jne 0x40f3b9
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x140]
mov dword [esp + 0x98], eax
movsd xmm0, qword [esp + 0x138]
movsd qword [esp + 0x90], xmm0
lea eax, [esp + 0x144]
movsd xmm0, qword [eax]
movsd qword [esp + 0x118], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x90]
xor eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x94]
xor ecx, dword [esp + 0x11c]
or ecx, eax
je 0x40f3b1
mov eax, dword [sym.imp.libLLVM_18.dll_vtable_for_llvm::raw_string_ostream]
add eax, 8
mov dword [esp + 0x150], eax
mov esi, dword [esp + 0x9c]
jmp 0x40e650
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx]
lea edx, [esp + 0x90]
mov dword [esp], edx
call dword [eax + 0xc]
sub esp, 4
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
xor eax, dword [esp + 0x118]
xor ecx, dword [esp + 0x11c]
add esi, 0x10
or ecx, eax
je 0x40f3b1
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ebx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0xb0]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
lea ecx, [esp + 0xa4]
call dword [eax + 0x14]
sub esp, 0xc
test byte [esp + 0xa8], 1
jne 0x40e6e0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
add eax, 0xffffffef
cmp eax, 0xfffffffc
mov dword [esp + 0x24], ebx
jae 0x40e760
cmp byte [0x424aa4], 0
jne 0x40e7a0
mov ebx, 3
test byte [esp + 0xa4], 0x80
je 0x40e7a0
jmp 0x40f2b0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + 0x1c]
call fcn.0041ce0c
mov dword [esp + 0x178], 0
mov dword [esp + 0x174], 0
movsd xmm0, qword [esp + 0x174]
movsd qword [esp + 4], xmm0
mov dword [esp], edx
lea ecx, [esp + 0x12c]
mov edx, eax
call fcn.0040b080
mov ecx, dword [esp + 0x12c]
mov ebx, 1
test ecx, ecx
je 0x40f2b0
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40f2b0
mov eax, dword [ecx]
call dword [eax + 0x114]
movzx eax, ax
cmp eax, 0xf2
jg 0x40e783
cmp eax, 0x28
je 0x40e7a0
cmp eax, 0xb7
je 0x40e7a0
jmp 0x40e6b9
cmp eax, 0xf3
je 0x40e7a0
cmp eax, 0xfc
jne 0x40e6b9
nop word cs:[eax + eax]
cmp byte [0x424a60], 0
je 0x40e7bc
mov ebx, 3
test byte [esp + 0xa4], 0x20
jne 0x40f2b0
cmp dword [esp + 0x84], 0
je 0x40e868
mov ebx, dword [esp + 0xac]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x20]
test al, al
je 0x40e809
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], ebx
lea ecx, [esp + 0xb0]
call fcn.0041cda6
jmp 0x40e834
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], ebx
lea ecx, [esp + 0xb0]
call fcn.0041cd94
sub esp, 0xc
movzx eax, byte [esp + 0xb4]
not al
test al, 0xe
movzx eax, byte [esp + 0xb5]
mov ecx, 0
cmovne eax, ecx
movzx eax, al
mov ebx, 3
cmp dword [esp + 0x84], eax
jne 0x40f2b0
xorps xmm0, xmm0
movaps xmmword [esp + 0xb0], xmm0
mov byte [esp + 0xc0], 0
lea eax, [esp + 0xc4]
movups xmmword [eax + 0x40], xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
lea ecx, [eax - 0xd]
cmp ecx, 3
mov ebx, dword [esp + 0x24]
ja 0x40e940
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0xe4]
sub esp, 8
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
lea ecx, [eax - 0xd]
cmp ecx, 0xfffffffe
mov ecx, dword [esp + 0x1c]
jb 0x40e949
mov dword [esp + 0x16c], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x170], eax
movsd xmm0, qword [esp + 0x16c]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x1c]
call fcn.0041cddc
sub esp, 8
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov eax, dword [ecx + 4]
cmp eax, 0x16
jne 0x40e9a0
jmp 0x40e94e
cmp ecx, 0xfffffffe
mov ecx, dword [esp + 0x1c]
jae 0x40e8f1
cmp eax, 0x16
jne 0x40e9a0
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
lea eax, [esp + 0x30]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
call fcn.0041cd76
sub esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 8], 1
jne 0x40e9a0
test byte [eax + 0xc], 0x10
jne 0x40e9a0
movsd xmm0, qword [eax + 0x48]
movsd qword [esp + 0xb8], xmm0
nop word cs:[eax + eax]
mov eax, dword [ecx + 4]
cmp byte [0x424a58], 0
jne 0x40ea03
lea ecx, [eax - 0x17]
cmp ecx, 0xfffffff3
jb 0x40ea03
mov eax, dword [esp + 0x20]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
lea ecx, [esp + 0x30]
call dword [eax + 0x2c]
sub esp, 0xc
test byte [esp + 0x38], 1
jne 0x40ec9c
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
add eax, 0xfffffff3
cmp eax, 3
mov ecx, dword [esp + 0x20]
ja 0x40ea2a
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edi
lea ecx, [esp + 0x30]
call fcn.004159b0
mov ecx, dword [esp + 0x20]
jmp 0x40ea31
xor edx, edx
mov eax, 0x41eb00
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ebx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
lea ecx, [esp + 0x88]
call dword [eax + 0x14]
sub esp, 0xc
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x11]
cmp ecx, 0xfffffffc
mov dword [esp + 0x78], edi
jb 0x40eb9c
mov ebx, str.ABS
test dl, 8
lea ecx, [esp + 0x60]
jne 0x40eb86
mov ebx, str.COM
test dl, 0x10
jne 0x40eb86
mov ebx, str.UND
test dl, 1
jne 0x40eb86
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
mov ebx, ecx
call dword [eax + 0x40]
sub esp, 0xc
test byte [esp + 0x6c], 1
jne 0x40edd8
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [esp], ecx
mov ecx, ebx
call dword [eax + 0xb4]
sub esp, 4
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x68]
jne 0x40eb33
mov ecx, dword [esp + 0x30]
xor ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
xor edx, dword [esp + 0x64]
or edx, ecx
je 0x40ee08
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x28], xmm0
mov edx, dword [eax]
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
lea ecx, [esp + 0x60]
call dword [edx + 0x48]
sub esp, 0xc
movzx eax, byte [esp + 0x68]
mov byte [esp + 0x77], al
test al, 1
jne 0x40ee79
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
jmp 0x40eeab
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], 5
mov ebx, dword [esp + 0x24]
test dl, 1
jne 0x40ec40
lea ecx, [eax - 0xd]
cmp ecx, 3
ja 0x40ebe6
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
mov ecx, edi
mov edi, edx
call dword [eax + 0xf0]
sub esp, 8
mov bl, 0x69
cmp al, 0xa
je 0x40ef63
mov edx, edi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x11]
test dl, 4
je 0x40ed0c
cmp ecx, 4
jb 0x40ed0c
add eax, 0xfffffff3
mov bl, 0x57
cmp eax, 3
ja 0x40ef63
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
call dword [eax + 0xf0]
sub esp, 8
cmp al, 1
sete bl
xor bl, 0x57
jmp 0x40ef63
test dl, 4
je 0x40edd1
lea ecx, [eax - 0x11]
cmp ecx, 4
mov bl, 0x55
jb 0x40ef63
add eax, 0xfffffff3
mov bl, 0x77
cmp eax, 3
ja 0x40ef63
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
call dword [eax + 0xf0]
sub esp, 8
cmp al, 1
sete bl
xor bl, 0x77
jmp 0x40ef63
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], eax
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
lea eax, [esp + 0x28]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.0040dbd0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x40ecd8
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x38], 1
je 0x40ecf4
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
test ecx, ecx
je 0x40ecf4
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, 2
test byte [esp + 0x108], 1
jne 0x40f284
jmp 0x40f293
mov bl, 0x43
test dl, 0x10
jne 0x40ef63
mov bl, 0x61
test dl, 8
jne 0x40ef50
cmp eax, 0xa
je 0x40ee0f
mov dword [esp + 0x58], edx
cmp eax, 3
mov edi, dword [esp + 0x78]
mov ebx, dword [esp + 0x24]
jne 0x40ee4a
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
lea ecx, [esp + 0x28]
call dword [eax + 0x14]
sub esp, 0xc
mov ebx, dword [esp + 0x28]
mov cl, 0x74
test ebx, 0x800
jne 0x40ef4a
mov ecx, dword [esp + 0x1c]
call fcn.0041cd40
mov word [esp + 0x70], 0x105
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
lea eax, [esp + 0x60]
mov dword [esp], eax
lea ecx, [esp + 0x30]
call fcn.0041cc50
sub esp, 4
mov eax, dword [esp + 0x48]
mov ecx, eax
and ecx, 0xfffffff7
mov dl, 1
cmp ecx, 1
je 0x40ef21
cmp eax, 0x1d
ja 0x40ef1f
mov ecx, 0x3c000020
bt ecx, eax
setb dl
jmp 0x40ef21
mov bl, 0x55
jmp 0x40ef63
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], eax
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
lea eax, [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0040dbd0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x40ee08
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 0x3f
jmp 0x40ef63
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x38], eax
mov dword [esp + 8], eax
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
mov ecx, dword [esp + 0x1c]
mov edi, edx
call fcn.00415b40
mov edx, edi
mov ebx, eax
jmp 0x40ef50
lea edx, [eax - 0xd]
cmp edx, 0xfffffffe
jae 0x40eee8
cmp eax, 2
jne 0x40ef02
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
movzx ecx, byte [eax + 0x12]
shl cl, 3
mov ebx, 0x3f726474
shr ebx, cl
jmp 0x40ef4c
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], 0
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
mov dword [esp], eax
call fcn.0040db90
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x40eeab
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x68], 1
je 0x40eec7
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x60], 0
test ecx, ecx
je 0x40eec7
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 0x3f
test byte [esp + 0x77], 1
mov edx, dword [esp + 0x58]
jne 0x40ef63
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x78]
jmp 0x40eb98
mov dword [esp + 4], edi
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
mov edx, ebx
call fcn.00415e60
mov ebx, eax
jmp 0x40ef4c
cmp ecx, 3
ja 0x40f2eb
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
mov edx, ebx
call fcn.004160b0
jmp 0x40eefe
xor edx, edx
test byte [esp + 0x30], 1
je 0x40ef38
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov edi, edx
call sub.libc.dll_operator_delete_void_
mov edx, edi
shr ebx, 0xa
and bl, dl
mov ecx, 0x64
mov eax, 0x73
cmovne ecx, eax
mov ebx, ecx
mov edx, dword [esp + 0x58]
test dl, 2
je 0x40ef63
movsx eax, bl
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_toupper]
mov ebx, eax
mov byte [esp + 0xc0], bl
xorps xmm0, xmm0
movups xmmword [esp + 0x34], xmm0
mov byte [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0x150]
mov dword [esp + 0x30], eax
lea eax, [esp + 0xc4]
mov dword [esp + 0x50], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
lea ebx, [esp + 0x30]
mov ecx, ebx
call fcn.0041cbc0
sub esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x78]
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 8], xmm0
mov dword [esp + 4], ebx
mov dword [esp], edi
lea ecx, [esp + 0x88]
call dword [eax + 0x10]
sub esp, 0x10
mov eax, dword [esp + 0x88]
test eax, eax
je 0x40f0f9
cmp dword [esp + 0x7c], 0xfffffffc
jae 0x40f06c
mov dword [esp + 0x128], eax
mov dword [esp + 0x88], 0
mov ecx, dword [esp + 0x1c]
call fcn.0041ce0c
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 0
movsd xmm0, qword [esp + 0x164]
movsd qword [esp + 4], xmm0
mov dword [esp], edx
lea ecx, [esp + 0x128]
mov edx, eax
call fcn.0040b080
mov ecx, dword [esp + 0x128]
test ecx, ecx
jne 0x40f0e4
jmp 0x40f0e9
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
sub edx, ecx
cmp edx, 0xf
ja 0x40f09f
mov dword [esp + 4], 0x10
mov dword [esp], str.bad_string_index
lea ecx, [esp + 0x30]
call fcn.0041cbc6
sub esp, 8
mov eax, dword [esp + 0x88]
jmp 0x40f0ae
movups xmm0, xmmword [str.bad_string_index]
movups xmmword [ecx], xmm0
add dword [esp + 0x40], 0x10
lea ecx, [esp + 0x60]
mov dword [esp + 0x88], 0
mov dword [esp + 0x28], eax
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
lea eax, [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0040dbd0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x40f0e9
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x40f0f9
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
je 0x40f193
movzx eax, byte [esi]
test al, 1
je 0x40f122
mov eax, dword [esi + 4]
test eax, eax
jne 0x40f128
jmp 0x40f193
shr eax, 1
test eax, eax
je 0x40f193
cmp byte [esi + 0xc], 0
mov eax, 0x41eceb
mov ecx, 0x41ecee
cmove eax, ecx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.0041ce7e
movzx eax, byte [esp + 0x60]
test al, 1
je 0x40f160
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
jmp 0x40f166
shr eax, 1
lea ecx, [esp + 0x61]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0xc4]
call fcn.0041ce66
sub esp, 8
test byte [esp + 0x60], 1
je 0x40f18f
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], ebx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
lea ecx, [esp + 0x28]
call dword [eax + 0x14]
sub esp, 0xc
movzx ebx, byte [esp + 0x2c]
test bl, 1
jne 0x40f1e2
mov eax, dword [esp + 0x28]
mov dword [esp + 0xf4], eax
jmp 0x40f23b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], 0
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x1c]
call fcn.0041ce0c
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 4], xmm0
mov dword [esp], edx
lea ecx, [esp + 0x88]
mov edx, eax
call fcn.0040b080
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x40f23b
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x2c], 1
je 0x40f257
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x40f257
mov eax, dword [ecx]
call dword [eax + 4]
test bl, 1
jne 0x40f26f
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0xb0]
call fcn.0040f6e0
lea ecx, [esp + 0x30]
call fcn.0041cbd2
xor ebx, ebx
test byte [esp + 0x108], 1
je 0x40f293
mov eax, dword [esp + 0x110]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
test byte [esp + 0xc4], 1
je 0x40f2b0
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
nop dword [eax]
test byte [esp + 0xa8], 1
je 0x40f2d5
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xa4], 0
test ecx, ecx
je 0x40f2d5
mov eax, dword [ecx]
call dword [eax + 4]
cmp ebx, 3
je 0x40e610
test ebx, ebx
je 0x40e610
jmp 0x40f3ee
cmp eax, 5
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x60]
je 0x40f335
cmp eax, 0x16
jne 0x40f34a
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
call dword [eax + 0x14]
sub esp, 0xc
mov ebx, dword [esp + 0x60]
shr ebx, 0xb
and ebx, 1
shl bl, 4
or bl, 0x64
jmp 0x40ef4c
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov ecx, edx
mov edx, ebx
call fcn.00416410
jmp 0x40eefe
mov dword [esp + 4], edi
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov ecx, edx
mov edx, ebx
call fcn.00416470
mov ecx, ebx
mov ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov eax, dword [edi]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
mov ecx, edi
call dword [eax + 0xe8]
sub esp, 8
cmp al, 0xa
mov edx, dword [esp + 0x58]
jne 0x40ef50
jmp 0x40ef63
xor ebx, ebx
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x40f413
jmp 0x40f43d
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
mov bl, 1
cmp edx, 0xfffffffc
mov esi, dword [esp + 0x5c]
jb 0x40f3e1
cmp byte [0x424a41], 0
jne 0x40f3e1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
call fcn.00412a10
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x40f413
jmp 0x40f43d
test bl, 1
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
je 0x40f3b9
xor ebx, ebx
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x40f413
jmp 0x40f43d
add esi, 0xfffffff0
cmp esi, eax
je 0x40f431
test byte [esi - 0x10], 1
je 0x40f410
mov eax, dword [esi - 8]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov eax, dword [esp + 0x9c]
jmp 0x40f410
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov edi, dword [esp + 0x1c]
cmp byte [0x424a59], 0
sete al
and bl, al
cmp bl, 1
jne 0x40f6a0
cmp byte [0x424a44], 0
je 0x40f4b2
mov eax, dword [edi + 4]
add eax, 0xfffffff3
cmp eax, 3
ja 0x40f514
mov eax, dword [edi]
mov dword [esp], edi
lea ecx, [esp + 0x30]
call dword [eax + 0x108]
sub esp, 4
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb8], eax
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [esp + 0x3c]
movsd qword [esp + 0xbc], xmm0
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc4], eax
jmp 0x40f4e4
mov eax, dword [edi]
mov dword [esp], edi
mov esi, edi
lea ecx, [esp + 0x30]
call dword [eax + 0x18]
sub esp, 4
mov eax, dword [edi]
lea ecx, [esp + 0xbc]
mov dword [esp], edi
call dword [eax + 0x1c]
sub esp, 4
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0xb0], xmm0
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
xor eax, dword [esp + 0xbc]
xor ecx, dword [esp + 0xc0]
xor ebx, ebx
or ecx, eax
setne bl
mov esi, dword [ebp + 0x1c]
test bl, bl
jne 0x40f60b
jmp 0x40f573
mov dword [esp + 0x30], str.File_format_has_no_dynamic_symbol_table
mov word [esp + 0x40], 0x103
mov dword [esp], 0x1c
call sub.libc.dll_operator_new_unsigned_int_
mov ebx, eax
call fcn.0041cc92
mov dword [esp + 0x13c], eax
mov dword [esp + 0x138], 3
movsd xmm0, qword [esp + 0x138]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x30]
mov dword [esp], eax
mov ecx, ebx
call fcn.0041cbb4
sub esp, 0xc
mov esi, dword [ebp + 0x1c]
test bl, bl
jne 0x40f60b
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
jne 0x40f60b
cmp byte [0x424a72], 0
jne 0x40f60b
call fcn.0041cc3e
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x160], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x158], esi
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x154], ecx
movsd xmm0, qword [esp + 0x154]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x15c]
movsd qword [esp], xmm0
mov ecx, eax
call fcn.0040f990
call fcn.0041cc3e
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0xa
ja 0x40f6a8
mov dword [esp + 4], 0xb
mov dword [esp], str.no_symbols_n
mov ecx, eax
call fcn.0041cbc6
sub esp, 8
movzx ebx, byte [ebp + 8]
cmp byte [0x424a74], 0
jne 0x40f671
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, edx
sub eax, ecx
sar eax, 3
imul eax, eax, 0xc4ec4ec5
bsr esi, eax
xor esi, 0x1f
add esi, esi
xor esi, 0x3e
xor eax, eax
cmp edx, ecx
cmovne eax, esi
cmp byte [0x424a47], 0
je 0x40f65e
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00407170
jmp 0x40f66e
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.004095a0
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
movzx eax, bl
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
call fcn.0040fc00
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ecx + 7], 0xa736c6f
mov dword [ecx + 4], 0x6f626d79
mov dword [ecx], 0x73206f6e
add dword [eax + 0x10], 0xb
movzx ebx, byte [ebp + 8]
cmp byte [0x424a74], 0
jne 0x40f671
jmp 0x40f618