Function at 0x401390
Capabilities:
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x32c
lea eax, [esp + 0x344]
lea edx, [esp + 0x340]
lea ecx, [esp + 0x2d4]
push 1
push eax
push edx
call fcn.0041d0a2
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
lea eax, [esp + 0xf4]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 4
lea eax, [esp + 0x110]
mov dword [esp + 0x104], eax
movaps xmm0, xmmword [0x41e050]
movups xmmword [esp + 0x108], xmm0
lea eax, [esp + 0xe0]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x1a8], 0x41e314
mov dword [esp + 0x1ac], 0x41
sub esp, 0xc
movsd xmm0, qword [esp + 0x1b4]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea esi, [esp + 0x270]
mov ecx, esi
call fcn.0041d02a
mov dword [esp + 0x264], 0x41ef4c
mov byte [esp + 0x271], 1
mov ebx, dword [esp + 0x344]
mov edi, dword [ebx]
test edi, edi
je 0x401485
push edi
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x401487
xor eax, eax
mov dword [0x425a88], edi
mov dword [0x425a8c], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 0x98], 4
mov dword [esp + 0xd0], 0x416e20
lea edi, [esp + 0x118]
mov dword [esp + 0xd4], edi
sub esp, 0x1c
movsd xmm0, qword [esp + 0xec]
movsd qword [esp + 0x14], xmm0
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], esi
lea esi, [esp + 0x1c4]
mov ecx, esi
call fcn.0041d0de
mov ecx, esi
mov edx, 0x19
call fcn.00403da0
test eax, eax
je 0x40155a
call fcn.0041d048
mov esi, eax
mov eax, dword [0x425a88]
mov ecx, dword [0x425a8c]
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], str.__options___input_object_files_
mov word [esp + 0x128], 0x305
lea ecx, [esp + 0x1c]
push edi
call fcn.0041d0ea
test byte [esp + 0x1c], 1
je 0x4015b1
mov eax, dword [esp + 0x24]
jmp 0x4015b5
lea ecx, [esp + 0x1a8]
mov edx, 0x3b
call fcn.00403da0
test eax, eax
je 0x401638
call fcn.0041d048
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x1e
ja 0x401740
mov ecx, eax
push 0x1f
push str.llvm_nm__compatible_with_GNU_nm
call fcn.0041cfca
mov ecx, dword [eax + 0x10]
cmp ecx, dword [eax + 0xc]
jb 0x401767
mov ecx, eax
push 0xa
call fcn.0041cfd0
jmp 0x401770
lea eax, [esp + 0x1d]
lea ecx, [esp + 0x264]
push 0
push 0
push str.LLVM_symbol_table_dumper
push eax
push esi
call fcn.0041d0e4
test byte [esp + 0x1c], 1
je 0x4015df
push dword [esp + 0x24]
call sub.libc.dll_operator_delete_void_
add esp, 4
call fcn.0041d048
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x32
ja 0x401606
mov ecx, eax
push 0x33
push str._nPass__FILE_as_argument_to_read_options_from_FILE._n
call fcn.0041cfca
xor ebx, ebx
jmp 0x403b14
movups xmm0, xmmword [0x41e129]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x41e119]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str._nPass__FILE_as_argument_to_read_options_from_FILE._n]
movups xmmword [ecx], xmm0
mov dword [ecx + 0x2f], 0xa2e454c
add dword [eax + 0x10], 0x33
xor ebx, ebx
jmp 0x403b14
lea esi, [esp + 0x1a8]
mov ecx, esi
mov edx, 0xd
call fcn.00403da0
test eax, eax
setne byte [0x425a9c]
mov ecx, esi
mov edx, 0xe
call fcn.00403da0
test eax, eax
setne byte [0x425a43]
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x140], 0x1f
mov eax, dword [esp + 0x94]
mov ecx, esi
push 0
push 0x1f
push eax
call fcn.0041d0d2
mov byte [0x425a80], al
mov ecx, esi
mov edx, 0x11
call fcn.00403da0
test eax, eax
setne byte [0x425a44]
mov ecx, esi
mov edx, 0x14
call fcn.00403da0
test eax, eax
setne byte [0x425a4d]
mov dword [esp + 0x90], 0x15
mov dword [esp + 0xc8], 0x41e15d
mov dword [esp + 0xcc], 3
sub esp, 0xc
movsd xmm0, qword [esp + 0xd4]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov ecx, esi
call fcn.0041d0cc
add edx, 0xfffffffd
cmp edx, 9
ja case.0x401711.7
jmp dword [edx*4 + 0x420170]
movzx ecx, word [eax]
xor ecx, 0x7362
movzx eax, byte [eax + 2]
xor eax, 0x64
or ax, cx
jne case.0x401711.7
mov dword [0x425a50], 0
jmp 0x401845
movups xmm0, xmmword [0x41e14c]
movups xmmword [ecx + 0xf], xmm0
movups xmm0, xmmword [str.llvm_nm__compatible_with_GNU_nm]
movups xmmword [ecx], xmm0
mov ecx, dword [eax + 0x10]
add ecx, 0x1f
mov dword [eax + 0x10], ecx
cmp ecx, dword [eax + 0xc]
jae 0x4015a3
lea edx, [ecx + 1]
mov dword [eax + 0x10], edx
mov byte [ecx], 0xa
call fcn.0041d01e
xor ebx, ebx
jmp 0x403b14
cmp dword [eax], 0x76737973
jne case.0x401711.7
mov dword [0x425a50], 1
jmp 0x401845
mov ecx, 0x69736f70
xor ecx, dword [eax]
movzx eax, byte [eax + 4]
xor eax, 0x78
or eax, ecx
jne case.0x401711.7
mov dword [0x425a50], 2
jmp 0x401845
mov ecx, 0x77726164
xor ecx, dword [eax]
movzx eax, word [eax + 4]
xor eax, 0x6e69
or eax, ecx
jne case.0x401711.7
mov dword [0x425a50], 3
jmp 0x401845
push 0xc
push 0x41e161
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x402852
mov dword [esp + 0x158], str.__format_value_should_be_one_of:_bsd__posix__sysv__darwin__just_symbols
mov word [esp + 0x168], 0x103
mov word [esp + 0x1a4], 0x101
sub esp, 0x28
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0x24], eax
movups xmm0, xmmword [esp + 0x1bc]
movups xmmword [esp + 0x14], xmm0
mov eax, dword [esp + 0x190]
mov dword [esp + 0x10], eax
movups xmm0, xmmword [esp + 0x180]
movups xmmword [esp], xmm0
call fcn.00403cf0
add esp, 0x28
lea esi, [esp + 0x1a8]
mov ecx, esi
mov edx, 0x21
call fcn.00403da0
test eax, eax
setne byte [0x425a57]
mov ecx, esi
mov edx, 0x23
call fcn.00403da0
test eax, eax
setne byte [0x425a6c]
mov ecx, esi
mov edx, 0x24
call fcn.00403da0
test eax, eax
setne byte [0x425a58]
mov ecx, esi
mov edx, 0x25
call fcn.00403da0
test eax, eax
setne byte [0x425a45]
mov ecx, esi
mov edx, 0x29
call fcn.00403da0
test eax, eax
setne byte [0x425a40]
mov ecx, esi
mov edx, 0x2a
call fcn.00403da0
test eax, eax
setne byte [0x425a59]
mov ecx, esi
mov edx, 0x2b
call fcn.00403da0
test eax, eax
setne byte [0x425a9d]
mov ecx, esi
mov edx, 0x31
call fcn.00403da0
test eax, eax
setne byte [0x425a46]
mov ecx, esi
mov edx, 0x13
call fcn.00403da0
test eax, eax
setne byte [0x425a55]
je 0x401919
mov byte [0x425a4d], 1
mov byte [0x425a43], 1
lea esi, [esp + 0x1a8]
mov ecx, esi
mov edx, 0x2e
call fcn.00403da0
test eax, eax
setne byte [0x425a6a]
mov dword [esp + 0x8c], 0x2f
mov dword [esp + 0xc0], 0x41e1b6
mov dword [esp + 0xc4], 1
sub esp, 0xc
movsd xmm0, qword [esp + 0xcc]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov ecx, esi
call fcn.0041d0cc
cmp edx, 1
jne 0x4019a7
movzx eax, byte [eax]
cmp eax, 0x64
je 0x401a63
cmp eax, 0x78
je 0x401a6f
cmp eax, 0x6f
jne 0x4019a7
mov dword [0x425a48], 1
jmp 0x401a79
mov word [esp + 0x128], 0x101
mov dword [esp + 0x1c], str.__radix_value_should_be_one_of:_o__octal___d__decimal___x__hexadecimal_
mov word [esp + 0x2c], 0x103
mov byte [0x425a81], 1
call fcn.0041d042
mov ecx, dword [0x425a88]
mov edx, dword [0x425a8c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0041d0b4
add esp, 0x10
mov esi, eax
lea ecx, [esp + 0x118]
push eax
call fcn.0041d0f0
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
sub ecx, eax
cmp ecx, 1
ja 0x401a30
mov ecx, esi
push 2
push 0x41f8c0
call fcn.0041cfca
mov esi, eax
jmp 0x401a39
mov word [eax], 0x203a
add dword [esi + 0x10], 2
lea ecx, [esp + 0x1c]
push esi
call fcn.0041d0f0
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], eax
je 0x401a53
mov byte [eax], 0xa
inc dword [esi + 0x10]
jmp 0x401a79
mov ecx, esi
push 1
push 0x41f8c3
call fcn.0041cfca
jmp 0x401a79
mov dword [0x425a48], 0
jmp 0x401a79
mov dword [0x425a48], 2
lea esi, [esp + 0x1a8]
mov ecx, esi
mov edx, 0x33
call fcn.00403da0
test eax, eax
setne byte [0x425a82]
mov ecx, esi
mov edx, 0x34
call fcn.00403da0
test eax, eax
setne byte [0x425a47]
mov ecx, esi
mov edx, 0x38
call fcn.00403da0
test eax, eax
setne byte [0x425a5a]
mov ecx, esi
mov edx, 0x3e
call fcn.00403da0
test eax, eax
setne byte [0x425a5c]
lea edi, [esp + 0x4c]
push edi
call fcn.0041d036
add esp, 4
mov word [esp + 0x2c], 0x104
mov dword [esp + 0x1c], edi
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x118]
push eax
call fcn.0041d054
test byte [esp + 0x4c], 1
je 0x401b10
push dword [esp + 0x54]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ebx, 3
cmp dword [esp + 0x130], 0x16
jne 0x401b98
push str.OBJECT_MODE
call sub.msvcrt.dll_getenv
add esp, 4
xor ebx, ebx
test eax, eax
je 0x401b98
mov esi, eax
push eax
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 5
je 0x401b65
cmp eax, 3
je 0x401b7f
cmp eax, 2
jne 0x401b98
movzx eax, word [esi]
cmp eax, 0x3233
je 0x401b98
movzx eax, word [esi]
xor ebx, ebx
cmp eax, 0x3436
sete bl
jmp 0x401b98
push eax
push str.32_64
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
xor ebx, ebx
test eax, eax
sete bl
add ebx, ebx
jmp 0x401b98
push eax
push 0x41e21a
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
lea ebx, [ecx + ecx*2]
mov dword [0x425a70], ebx
lea ecx, [esp + 0x1a8]
mov edx, 0x40
call fcn.00403da0
test eax, eax
je 0x401c8e
mov eax, dword [eax + 0x1c]
mov esi, dword [eax]
test esi, esi
je 0x401c35
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 5
je 0x401bff
cmp eax, 3
je 0x401c1d
cmp eax, 2
jne 0x401c35
movzx eax, word [esi]
cmp eax, 0x3233
je 0x4033d8
movzx eax, word [esi]
cmp eax, 0x3436
jne 0x401c35
mov dword [0x425a70], 1
jmp 0x401c8e
mov eax, 0x365f3233
xor eax, dword [esi]
movzx ecx, byte [esi + 4]
xor ecx, 0x34
or ecx, eax
jne 0x401c35
mov dword [0x425a70], 2
jmp 0x401c8e
movzx eax, word [esi]
xor eax, 0x6e61
movzx ecx, byte [esi + 2]
xor ecx, 0x79
or cx, ax
je 0x4033e7
mov dword [esp + 0x144], str._X_value_should_be_one_of:_32__64__32_64___default__any
mov word [esp + 0x154], 0x103
mov word [esp + 0x190], 0x101
sub esp, 0x28
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x24], eax
movups xmm0, xmmword [esp + 0x1a8]
movups xmmword [esp + 0x14], xmm0
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x10], eax
movups xmm0, xmmword [esp + 0x16c]
movups xmmword [esp], xmm0
call fcn.00403cf0
add esp, 0x28
lea esi, [esp + 0x1a8]
mov ecx, esi
mov edx, 0x41
call fcn.00403da0
test eax, eax
setne byte [0x425a68]
mov ecx, esi
mov edx, 5
call fcn.00403da0
test eax, eax
setne byte [0x425a42]
mov ecx, esi
mov edx, 6
call fcn.00403da0
test eax, eax
setne byte [0x425a5b]
mov ecx, esi
mov edx, 0x10
call fcn.00403da0
test eax, eax
setne byte [0x425a4c]
mov ecx, esi
mov edx, 0x20
call fcn.00403da0
test eax, eax
setne byte [0x425a41]
mov ecx, esi
mov edx, 0x22
call fcn.00403da0
test eax, eax
setne byte [0x425a6b]
call fcn.0041d03c
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov word [esp + 0x17c], 0x101
sub esp, 0x1c
mov eax, dword [esp + 0x198]
mov dword [esp + 0x18], eax
movups xmm0, xmmword [esp + 0x188]
movups xmmword [esp + 8], xmm0
movsd xmm0, qword [esp + 0xd4]
movsd qword [esp], xmm0
mov ebx, 1
call fcn.00403ed0
add esp, 0x1c
test al, al
jne 0x403afb
call sub.libLLVM_17.dll_LLVMInitializeARMTargetInfo
call sub.libLLVM_17.dll_LLVMInitializeAArch64TargetInfo
call sub.libLLVM_17.dll_LLVMInitializeX86TargetInfo
call sub.libLLVM_17.dll_LLVMInitializeARMTargetMC
call sub.libLLVM_17.dll_LLVMInitializeAArch64TargetMC
call sub.libLLVM_17.dll_LLVMInitializeX86TargetMC
call sub.libLLVM_17.dll_LLVMInitializeARMAsmParser
call sub.libLLVM_17.dll_LLVMInitializeAArch64AsmParser
call sub.libLLVM_17.dll_LLVMInitializeX86AsmParser
movzx eax, byte [0x425a82]
test al, al
je 0x401db8
cmp byte [0x425a9d], 0
jne 0x401db8
mov byte [0x425a54], 1
jmp 0x401dc5
test al, al
jne 0x401dc5
cmp dword [0x425a50], 1
jne 0x401dcc
mov byte [0x425a9d], 1
mov dword [esp + 0x4c], 7
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 1
sub esp, 8
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
lea ecx, [esp + 0x1b0]
call fcn.0041d0d8
mov esi, edx
mov edi, dword [esp + 0x1ac]
lea ebp, [edi + eax*4]
cmp eax, edx
je 0x401e46
lea ebx, [esi*4]
shl eax, 2
sub ebx, eax
jmp 0x401e2c
add ebp, 4
add ebx, 0xfffffffc
je 0x402251
mov ecx, dword [ebp]
test ecx, ecx
je 0x401e20
mov dword [esp + 0x4c], 7
push 7
call fcn.0041d0c6
test al, al
je 0x401e20
lea eax, [edi + esi*4]
mov dword [esp + 4], eax
cmp ebp, eax
je 0x402251
lea ecx, [esp + 0x28]
mov eax, dword [ebp]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 2
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0xb0], eax
test eax, eax
je 0x401e8b
push eax
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x401e8d
xor eax, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xa8], 0x41e256
mov dword [esp + 0xac], 1
sub esp, 0x14
movsd xmm0, qword [esp + 0xbc]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0xc4]
movsd qword [esp], xmm0
lea eax, [esp + 0x30]
mov dword [esp + 8], eax
call fcn.0041cfb2
add esp, 0x14
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40220d
lea eax, [ebx + eax*8]
mov dword [esp + 8], eax
mov dword [esp + 0x14], ebp
jmp 0x401f0d
mov byte [0x425a6d], 1
nop
add ebx, 8
cmp ebx, dword [esp + 8]
je 0x402209
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov eax, esi
mov ecx, 0xffffffff
and eax, ecx
cmp eax, 3
jne 0x401f34
movzx eax, word [edi]
xor eax, 0x6c61
movzx ecx, byte [edi + 2]
xor ecx, 0x6c
or cx, ax
je 0x401ef7
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], esi
sub esp, 8
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp], xmm0
call fcn.0041d072
add esp, 8
test al, al
je 0x401f90
mov ebp, dword [0x425a94]
cmp ebp, dword [0x425a98]
je 0x402076
mov dword [ebp], edi
mov dword [ebp + 4], esi
add ebp, 8
mov dword [0x425a94], ebp
mov ebp, dword [esp + 0x14]
jmp 0x401f00
mov dword [esp], ebx
mov word [esp + 0x84], 0x503
mov dword [esp + 0x74], str.Unknown_architecture_named_
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], esi
mov dword [esp + 0x4c], str.for_the___arch_option
mov word [esp + 0x5c], 0x103
lea eax, [esp + 0x74]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], 0x41e275
mov word [esp + 0x70], 0x302
mov byte [0x425a81], 1
call fcn.0041d042
mov ecx, dword [0x425a88]
mov edx, dword [0x425a8c]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0xe8]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0041d0b4
add esp, 0x10
mov ebx, eax
lea ecx, [esp + 0x4c]
push eax
call fcn.0041d0f0
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 1
ja 0x40204c
mov ecx, ebx
push 2
push 0x41f8c0
call fcn.0041cfca
mov ebx, eax
jmp 0x402055
mov word [eax], 0x203a
add dword [ebx + 0x10], 2
lea ecx, [esp + 0x60]
push ebx
call fcn.0041d0f0
mov eax, dword [ebx + 0x10]
cmp dword [ebx + 0xc], eax
je 0x4020ed
mov byte [eax], 0xa
inc dword [ebx + 0x10]
jmp 0x4020fb
mov eax, dword [0x425a90]
mov edx, ebp
mov dword [esp + 0x10], eax
sub edx, eax
mov ecx, edx
sar ecx, 3
mov eax, ecx
mov dword [esp + 0xc], ecx
lea eax, [ecx + 1]
cmp eax, 0x20000000
jae 0x403c74
mov ecx, edx
sar ecx, 2
cmp ecx, eax
cmovbe ecx, eax
mov dword [esp + 0x18], edx
cmp edx, 0x7ffffff8
mov eax, 0x1fffffff
cmovae ecx, eax
test ecx, ecx
mov dword [esp], ebx
mov dword [esp + 0x38], ecx
je 0x402103
cmp ecx, 0x20000000
jae 0x403c6a
lea eax, [ecx*8]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ebp, dword [0x425a94]
mov ecx, dword [0x425a90]
jmp 0x402109
mov ecx, ebx
push 1
push 0x41f8c3
call fcn.0041cfca
mov ebx, dword [esp]
jmp 0x401f00
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
lea ebx, [eax + edx*8]
mov dword [eax + edx*8], edi
mov dword [eax + edx*8 + 4], esi
mov edx, ebp
sub edx, ecx
mov edi, eax
je 0x4021ca
add edx, 0xfffffff8
cmp edx, 0x58
jae 0x402132
mov esi, ebp
jmp 0x4021b0
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
mov esi, ebp
sub esi, edi
sub esi, edx
cmp esi, 0x20
jae 0x402149
mov esi, ebp
jmp 0x4021b0
mov eax, dword [esp + 0x10]
shr eax, 3
inc eax
mov dword [esp + 0x10], eax
and eax, 0xfffffffc
lea esi, [eax*8]
mov dword [esp + 0x3c], esi
sub ebx, esi
mov esi, ebp
sub esi, dword [esp + 0x3c]
mov dword [esp + 0x3c], edi
add edi, edx
add edi, 0xfffffff0
mov edx, eax
mov dword [esp + 0x18], eax
neg edx
xor eax, eax
nop
movups xmm0, xmmword [ebp + eax*8 - 0x20]
movups xmm1, xmmword [ebp + eax*8 - 0x10]
movups xmmword [edi + eax*8], xmm1
movups xmmword [edi + eax*8 - 0x10], xmm0
add eax, 0xfffffffc
cmp edx, eax
jne 0x402180
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], eax
mov edi, dword [esp + 0x3c]
je 0x4021c4
nop dword [eax + eax]
movsd xmm0, qword [esi - 8]
add esi, 0xfffffff8
movsd qword [ebx - 8], xmm0
add ebx, 0xfffffff8
cmp esi, ecx
jne 0x4021b0
mov ecx, dword [0x425a90]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
lea eax, [edi + eax*8]
mov edx, dword [esp + 0xc]
lea edx, [edi + edx*8]
add edx, 8
mov dword [0x425a90], ebx
mov dword [0x425a94], edx
mov dword [0x425a98], eax
test ecx, ecx
mov ebx, dword [esp]
je 0x401f00
push ecx
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x401f00
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x28]
cmp ebx, eax
je 0x402220
push ebx
call sub.msvcrt.dll_free
add esp, 4
nop
add ebp, 4
cmp ebp, dword [esp + 4]
je 0x402251
mov ecx, dword [ebp]
test ecx, ecx
je 0x402220
mov dword [esp + 0x1c], 7
push 7
call fcn.0041d0c6
test al, al
je 0x402220
cmp ebp, dword [esp + 4]
lea ecx, [esp + 0x28]
jne 0x401e59
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x4c], 0x36
mov dword [esp + 0x50], 3
lea eax, [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 2
sub esp, 8
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
lea ecx, [esp + 0x1b0]
call fcn.0041d0d8
mov esi, edx
mov ecx, dword [esp + 0x1ac]
lea ebp, [ecx + eax*4]
cmp eax, edx
je 0x402310
mov dword [esp], ecx
lea ebx, [esi*4]
shl eax, 2
sub ebx, eax
jmp 0x4022dc
add ebp, 4
add ebx, 0xfffffffc
je 0x402630
mov edi, dword [ebp]
test edi, edi
je 0x4022d0
mov dword [esp + 0x4c], 0x36
mov ecx, edi
push 0x36
call fcn.0041d0c6
test al, al
jne 0x40230d
mov dword [esp + 0x4c], 3
mov ecx, edi
push 3
call fcn.0041d0c6
test al, al
je 0x4022d0
mov ecx, dword [esp]
lea esi, [ecx + esi*4]
cmp ebp, esi
je 0x402630
xor ebx, ebx
mov edi, dword [ebp]
test ebx, ebx
jle 0x402338
mov eax, dword [edi + 0x1c]
mov edi, dword [eax]
test edi, edi
je 0x402394
push edi
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x402396
mov dword [esp + 0x13c], 0x36
mov ecx, edi
push 0x36
call fcn.0041d0c6
mov ebx, 2
test al, al
jne 0x4025f0
mov eax, dword [edi + 0x1c]
mov edi, dword [eax]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x403c88
mov ebx, eax
cmp eax, 0xb
jae 0x4024a3
mov eax, ebx
add al, bl
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1d]
test ebx, ebx
jne 0x4024cb
jmp 0x4024da
xor eax, eax
dec ebx
mov dword [esp + 4], ebx
mov ebx, dword [0x425a78]
mov ecx, dword [0x425a7c]
cmp ebx, ecx
jae 0x4023c2
mov dword [ebx], edi
mov dword [ebx + 4], eax
add ebx, 8
mov dword [0x425a78], ebx
mov ebx, dword [esp + 4]
jmp 0x4025f0
mov dword [esp + 0xc], eax
mov dword [esp], edi
mov dword [esp + 8], esi
mov eax, dword [0x425a74]
mov edi, ebx
sub edi, eax
mov dword [esp + 0x18], edi
sar edi, 3
lea edx, [edi + 1]
cmp edx, 0x20000000
jae 0x403c7e
sub ecx, eax
mov esi, ecx
sar esi, 2
cmp esi, edx
cmovbe esi, edx
cmp ecx, 0x7ffffff8
mov ecx, eax
mov eax, 0x1fffffff
cmovae esi, eax
test esi, esi
mov dword [esp + 0x14], esi
je 0x40243a
cmp esi, 0x20000000
jae 0x403c6a
lea eax, [esi*8]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ebx, dword [0x425a78]
mov ecx, dword [0x425a74]
jmp 0x40243c
xor eax, eax
mov dword [esp + 0x10], ecx
mov edx, edi
lea edi, [eax + edi*8]
mov esi, dword [esp]
mov dword [eax + edx*8], esi
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0xc]
mov dword [eax + edx*8 + 4], ecx
mov edx, ebx
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov esi, dword [esp + 8]
je 0x402478
add edx, 0xfffffff8
cmp edx, 0x58
mov dword [esp + 0x3c], eax
jae 0x402481
mov edx, ebx
jmp 0x402590
mov ebx, dword [esp + 4]
jmp 0x4025b2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x18]
add edx, eax
mov dword [esp], edx
mov edx, ebx
sub edx, dword [esp]
cmp edx, 0x20
jae 0x40252a
mov edx, ebx
jmp 0x402590
mov dword [esp + 8], esi
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
add esi, 2
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x20], ebx
push ebx
push edi
push eax
mov edi, eax
call sub.msvcrt.dll_memmove
mov eax, edi
add esp, 0xc
mov byte [eax + ebx], 0
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x68]
jae 0x402502
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x1c]
movsd qword [eax], xmm0
add eax, 0xc
mov dword [esp + 0x64], eax
jmp 0x402523
lea ecx, [esp + 0x60]
lea eax, [esp + 0x1c]
push eax
call fcn.00416e80
test byte [esp + 0x1c], 1
je 0x402523
push dword [esp + 0x24]
call sub.libc.dll_operator_delete_void_
add esp, 4
xor ebx, ebx
jmp 0x4025f0
mov edx, dword [esp + 0xc]
shr edx, 3
inc edx
mov dword [esp + 0xc], edx
and edx, 0xfffffffc
mov dword [esp + 0x40], edx
lea esi, [edx*8]
sub edi, esi
mov edx, ebx
sub edx, esi
mov esi, dword [esp + 0x18]
add eax, esi
add eax, 0xfffffff0
mov esi, dword [esp + 0x40]
neg esi
mov dword [esp], esi
xor esi, esi
movups xmm0, xmmword [ebx + esi*8 - 0x20]
movups xmm1, xmmword [ebx + esi*8 - 0x10]
movups xmmword [eax + esi*8], xmm1
movups xmmword [eax + esi*8 - 0x10], xmm0
add esi, 0xfffffffc
cmp dword [esp], esi
jne 0x40255e
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xc], eax
mov esi, dword [esp + 8]
je 0x4025a4
nop word [eax + eax]
movsd xmm0, qword [edx - 8]
add edx, 0xfffffff8
movsd qword [edi - 8], xmm0
add edi, 0xfffffff8
cmp edx, ecx
jne 0x402590
mov ecx, dword [0x425a74]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
lea edx, [eax + edx*8]
mov dword [esp], edx
mov edx, dword [esp + 0x38]
lea edx, [eax + edx*8]
add edx, 8
mov dword [0x425a74], edi
mov dword [0x425a78], edx
mov eax, dword [esp]
mov dword [0x425a7c], eax
test ecx, ecx
je 0x4025f0
push ecx
call sub.libc.dll_operator_delete_void_
add esp, 4
nop word [eax + eax]
add ebp, 4
cmp ebp, esi
je 0x402630
mov edi, dword [ebp]
test edi, edi
je 0x4025f0
mov dword [esp + 0x1c], 0x36
mov ecx, edi
push 0x36
call fcn.0041d0c6
test al, al
jne 0x402628
mov dword [esp + 0x1c], 3
mov ecx, edi
push 3
call fcn.0041d0c6
test al, al
je 0x4025f0
cmp ebp, esi
jne 0x40231d
mov eax, dword [0x425a78]
sub eax, dword [0x425a74]
je 0x402709
cmp eax, 0x10
je 0x402709
mov dword [esp + 0x1c], str.for_the__s_option
mov word [esp + 0x2c], 0x103
mov dword [esp + 0x4c], str.bad_number_of_arguments__must_be_two_arguments_
mov word [esp + 0x5c], 0x103
mov byte [0x425a81], 1
call fcn.0041d042
mov ecx, dword [0x425a88]
mov edx, dword [0x425a8c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x84]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0041d0b4
add esp, 0x10
mov esi, eax
lea ecx, [esp + 0x1c]
push eax
call fcn.0041d0f0
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
sub ecx, eax
cmp ecx, 1
ja 0x4026d8
mov ecx, esi
push 2
push 0x41f8c0
call fcn.0041cfca
mov esi, eax
jmp 0x4026e1
mov word [eax], 0x203a
add dword [esi + 0x10], 2
lea ecx, [esp + 0x4c]
push esi
call fcn.0041d0f0
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], eax
je 0x4026fb
mov byte [eax], 0xa
inc dword [esi + 0x10]
jmp 0x402709
mov ecx, esi
push 1
push 0x41f8c3
call fcn.0041cfca
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
cmp eax, ecx
jne 0x402772
mov byte [esp + 0x1c], 0xa
mov dword [esp + 0x1d], 0x756f2e61
mov word [esp + 0x21], 0x74
cmp eax, dword [esp + 0x68]
jae 0x402749
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x1c]
movsd qword [eax], xmm0
add eax, 0xc
mov dword [esp + 0x64], eax
jmp 0x40276a
lea ecx, [esp + 0x60]
lea eax, [esp + 0x1c]
push eax
call fcn.00416e80
test byte [esp + 0x1c], 1
je 0x40276a
push dword [esp + 0x24]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
sub ecx, eax
sar ecx, 2
imul eax, ecx, 0xaaaaaaab
cmp eax, 2
jb 0x402789
mov byte [0x425a56], 1
cmp byte [0x425a41], 0
je 0x40286f
movzx eax, byte [0x425a42]
or al, byte [0x425a4c]
je 0x40286f
mov word [esp + 0x2c], 0x101
mov dword [esp + 0x4c], str.__no_dyldinfo_cant_be_used_with___add_dyldinfo_or___dyldinfo_only
mov word [esp + 0x5c], 0x103
mov byte [0x425a81], 1
call fcn.0041d042
mov ecx, dword [0x425a88]
mov edx, dword [0x425a8c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x84]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0041d0b4
add esp, 0x10
mov esi, eax
lea ecx, [esp + 0x1c]
push eax
call fcn.0041d0f0
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
sub ecx, eax
cmp ecx, 1
ja 0x40282f
mov ecx, esi
push 2
push 0x41f8c0
call fcn.0041cfca
mov esi, eax
jmp 0x402838
mov word [eax], 0x203a
add dword [esi + 0x10], 2
lea ecx, [esp + 0x4c]
push esi
call fcn.0041d0f0
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], eax
je 0x402861
mov byte [eax], 0xa
inc dword [esi + 0x10]
jmp 0x40286f
mov dword [0x425a50], 4
jmp 0x401845
mov ecx, esi
push 1
push 0x41f8c3
call fcn.0041cfca
cmp byte [0x425a55], 0
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x3c], ebx
je 0x4032e9
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
cmp ebp, ebx
je 0x40338b
xor ebx, ebx
xor edi, edi
mov dword [esp + 8], 0
jmp 0x4028dc
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
mov edi, ebx
mov ebx, dword [esp + 0x10]
add ebp, 0xc
cmp ebp, dword [esp + 0x3c]
je 0x40328f
movzx eax, byte [ebp]
lea ecx, [ebp + 1]
mov edx, eax
shr edx, 1
test al, 1
cmovne ecx, dword [ebp + 8]
mov dword [esp + 0x74], ecx
cmovne edx, dword [ebp + 4]
mov dword [esp + 0x78], edx
sub esp, 8
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp], xmm0
lea ecx, [esp + 0x54]
call fcn.00403fe0
add esp, 8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov esi, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x40], eax
sub eax, esi
mov ecx, 0x4ec4ec4f
imul ecx
mov ecx, dword [esp]
mov dword [esp + 0x14], ebx
sub ebx, ecx
test ebx, ebx
jle 0x402ba0
sar ebx, 3
imul ebx, ebx, 0xc4ec4ec5
mov eax, edx
shr eax, 0x1f
sar edx, 5
add edx, eax
imul eax, edx, 0x68
mov dword [esp + 0x48], eax
lea edx, [esi + eax]
mov eax, edi
mov ecx, dword [esp + 8]
sub eax, ecx
sar eax, 3
imul eax, eax, 0xc4ec4ec5
cmp eax, ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x18], edx
jge 0x402bc0
mov eax, ecx
sub eax, esi
sar eax, 3
imul edx, eax, 0xc4ec4ec5
mov dword [esp + 4], ebx
add edx, ebx
cmp edx, 0x2762763
jae 0x403c6f
sub edi, esi
sar edi, 3
imul eax, edi, 0xc4ec4ec5
lea ecx, [eax + eax]
cmp ecx, edx
cmova edx, ecx
cmp eax, 0x13b13b1
mov eax, 0x2762762
cmovae edx, eax
xor ebp, ebp
mov edi, 0
test edx, edx
mov ebx, dword [esp + 8]
je 0x4029f0
cmp edx, 0x2762763
jae 0x403c6a
mov edi, edx
imul eax, edx, 0x68
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edx, edi
mov edi, eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x48]
lea ecx, [edi + eax]
imul eax, dword [esp + 4], 0x68
mov dword [esp + 4], ecx
add eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp]
add ecx, 0x60
mov dword [esp], ecx
mov dword [esp + 0xc], edi
jmp 0x402a51
lea eax, [edi + ebp]
add eax, 0x58
lea ecx, [ecx + ebp - 8]
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
mov edi, dword [esp + 0xc]
add ebp, 0x68
add esi, 0x68
mov edx, dword [esp + 0x14]
cmp esi, edx
mov ecx, dword [esp]
je 0x402da0
movzx eax, byte [ecx + ebp - 0x50]
mov edx, dword [esp + 4]
mov byte [edx + ebp + 0x10], al
movups xmm0, xmmword [ecx + ebp - 0x60]
movups xmmword [edx + ebp], xmm0
test byte [ecx + ebp - 0x4c], 1
jne 0x402a90
lea eax, [edx + ebp]
add eax, 0x14
lea esi, [ecx + ebp - 0x4c]
mov edi, edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
movsd xmm0, qword [esi]
movsd qword [eax], xmm0
jmp 0x402afc
mov ebx, dword [ecx + ebp - 0x48]
mov esi, dword [ecx + ebp - 0x44]
cmp ebx, 0xa
ja 0x402ab0
lea eax, [edx + ebp]
add eax, 0x15
mov ecx, ebx
add cl, bl
mov byte [edx + ebp + 0x14], cl
jmp 0x402ae5
mov dword [esp + 0x38], esi
cmp ebx, 0xfffffff0
jae 0x403c48
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 4]
mov dword [ecx + ebp + 0x1c], eax
add esi, 2
mov dword [ecx + ebp + 0x14], esi
mov dword [ecx + ebp + 0x18], ebx
mov esi, dword [esp + 0x38]
inc ebx
push ebx
push esi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebx, dword [esp + 8]
mov ecx, dword [esp]
mov edi, dword [esp + 4]
lea esi, [edi + ebp]
movsd xmm0, qword [ecx + ebp - 0x10]
movsd qword [esi + 0x50], xmm0
movups xmm0, xmmword [ecx + ebp - 0x20]
movups xmmword [esi + 0x40], xmm0
movups xmm0, xmmword [ecx + ebp - 0x40]
movups xmm1, xmmword [ecx + ebp - 0x30]
movups xmmword [esi + 0x30], xmm1
movups xmmword [esi + 0x20], xmm0
test byte [ecx + ebp - 8], 1
je 0x402a20
mov ebx, dword [ecx + ebp - 4]
mov edx, dword [ecx + ebp]
cmp ebx, 0xa
ja 0x402b50
lea eax, [edi + ebp]
add eax, 0x59
mov ecx, ebx
add cl, bl
mov byte [edi + ebp + 0x58], cl
mov edi, dword [esp + 0xc]
jmp 0x402b89
mov dword [esp + 0x38], edx
cmp ebx, 0xfffffff0
jae 0x403c57
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 4]
mov dword [ecx + ebp + 0x60], eax
add edi, 2
mov dword [ecx + ebp + 0x58], edi
mov dword [ecx + ebp + 0x5c], ebx
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
inc ebx
push ebx
push edx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebx, dword [esp + 8]
jmp 0x402a3c
mov ebx, esi
mov esi, dword [esp + 0x4c]
test esi, esi
jne 0x403250
jmp 0x4028cf
imul esi, ebx, 0x68
mov ebp, ecx
sub ebp, edx
mov eax, ebp
sar eax, 3
imul eax, eax, 0xc4ec4ec5
cmp eax, ebx
mov ebx, ecx
mov dword [esp + 0xc], edi
jge 0x402f96
mov dword [esp + 0x38], esi
imul esi, eax, 0x68
add esi, dword [esp]
cmp esi, dword [esp + 0x14]
je 0x403218
mov dword [esp + 0x40], ebp
xor edi, edi
mov dword [esp + 4], esi
jmp 0x402c27
lea eax, [esi + edi]
add eax, 0x58
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
lea eax, [esi + edi]
add eax, 0x68
add edi, 0x68
cmp eax, dword [esp + 0x14]
je 0x402d76
movzx eax, byte [esi + edi + 0x10]
mov byte [ebx + edi + 0x10], al
movups xmm0, xmmword [esi + edi]
movups xmmword [ebx + edi], xmm0
lea ecx, [ebx + edi]
add ecx, 0x14
test byte [esi + edi + 0x14], 1
jne 0x402c60
lea eax, [esi + edi]
add eax, 0x14
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
jmp 0x402cc3
mov edx, dword [esi + edi + 0x18]
mov esi, dword [esi + edi + 0x1c]
cmp edx, 0xa
ja 0x402c80
lea eax, [ebx + edi]
add eax, 0x15
mov ecx, edx
add cl, dl
mov byte [ebx + edi + 0x14], cl
jmp 0x402cb3
cmp edx, 0xfffffff0
jae 0x403c8c
mov ebx, edx
or ebx, 0xf
lea eax, [ebx + 1]
push eax
mov ebp, edx
call sub.libc.dll_operator_new_unsigned_int_
mov edx, ebp
add esp, 4
mov ecx, dword [esp + 8]
mov dword [ecx + edi + 0x1c], eax
add ebx, 2
mov dword [ecx + edi + 0x14], ebx
mov ebx, ecx
mov dword [ecx + edi + 0x18], ebp
inc edx
push edx
push esi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov esi, dword [esp + 4]
lea eax, [ebx + edi]
movsd xmm0, qword [esi + edi + 0x50]
movsd qword [eax + 0x50], xmm0
movups xmm0, xmmword [esi + edi + 0x40]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [esi + edi + 0x20]
movups xmm1, xmmword [esi + edi + 0x30]
movups xmmword [eax + 0x30], xmm1
movups xmmword [eax + 0x20], xmm0
lea ecx, [ebx + edi]
add ecx, 0x58
test byte [esi + edi + 0x58], 1
je 0x402c00
mov edx, dword [esi + edi + 0x5c]
mov esi, dword [esi + edi + 0x60]
cmp edx, 0xa
ja 0x402d20
lea eax, [ebx + edi]
add eax, 0x59
mov ecx, edx
add cl, dl
mov byte [ebx + edi + 0x58], cl
jmp 0x402d53
cmp edx, 0xfffffff0
jae 0x403c8c
mov ebx, edx
or ebx, 0xf
lea eax, [ebx + 1]
push eax
mov ebp, edx
call sub.libc.dll_operator_new_unsigned_int_
mov edx, ebp
add esp, 4
mov ecx, dword [esp + 8]
mov dword [ecx + edi + 0x60], eax
add ebx, 2
mov dword [ecx + edi + 0x58], ebx
mov ebx, ecx
mov dword [ecx + edi + 0x5c], ebp
inc edx
push edx
push esi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov esi, dword [esp + 4]
lea eax, [esi + edi]
add eax, 0x68
add edi, 0x68
cmp eax, dword [esp + 0x14]
jne 0x402c27
add edi, ebx
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x20], edi
test ebp, ebp
jle 0x403226
mov edx, dword [esp + 0x38]
jmp 0x402f9f
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x40], esi
je 0x402e66
lea eax, [esi - 0x10]
mov edx, dword [esp + 0x48]
nop word cs:[eax + eax]
movzx ecx, byte [eax + edx - 0x48]
mov byte [edi + edx - 0x58], cl
movups xmm0, xmmword [eax + edx - 0x58]
movups xmmword [edi + edx - 0x68], xmm0
mov ecx, dword [eax + edx - 0x3c]
mov dword [edi + edx - 0x4c], ecx
movsd xmm0, qword [eax + edx - 0x44]
movsd qword [edi + edx - 0x54], xmm0
mov dword [eax + edx - 0x40], 0
mov dword [eax + edx - 0x44], 0
mov dword [eax + edx - 0x3c], 0
movsd xmm0, qword [eax + edx - 8]
movsd qword [edi + edx - 0x18], xmm0
movups xmm0, xmmword [eax + edx - 0x18]
movups xmmword [edi + edx - 0x28], xmm0
movups xmm0, xmmword [eax + edx - 0x38]
movups xmm1, xmmword [eax + edx - 0x28]
movups xmmword [edi + edx - 0x38], xmm1
movups xmmword [edi + edx - 0x48], xmm0
movsd xmm0, qword [eax + edx]
movsd qword [edi + edx - 0x10], xmm0
mov ecx, dword [eax + edx + 8]
mov dword [edi + edx - 8], ecx
mov dword [eax + edx + 8], 0
mov dword [eax + edx + 4], 0
mov dword [eax + edx], 0
add edx, 0xffffff98
jne 0x402dc0
add edx, edi
mov dword [esp + 4], edx
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0x18]
je 0x402f07
mov ecx, dword [esp + 0x18]
nop word cs:[eax + eax]
movzx eax, byte [ecx + 0x10]
mov byte [edx + 0x10], al
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
mov eax, dword [ecx + 0x1c]
mov dword [edx + 0x1c], eax
movsd xmm0, qword [ecx + 0x14]
movsd qword [edx + 0x14], xmm0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x1c], 0
movsd xmm0, qword [ecx + 0x50]
movsd qword [edx + 0x50], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [edx + 0x40], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmm1, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm1
movups xmmword [edx + 0x20], xmm0
movsd xmm0, qword [ecx + 0x58]
movsd qword [edx + 0x58], xmm0
mov eax, dword [ecx + 0x60]
mov dword [edx + 0x60], eax
mov dword [ecx + 0x60], 0
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0x58], 0
add edx, 0x68
add ecx, 0x68
cmp ecx, ebx
jne 0x402e80
mov dword [esp + 0x20], edx
cmp ebx, esi
je 0x402f70
mov ebp, edx
jmp 0x402f27
add ebx, 0xffffff98
cmp ebx, esi
je 0x402f70
test byte [ebx - 0x10], 1
jne 0x402f40
test byte [ebx - 0x54], 1
je 0x402f20
jmp 0x402f53
push dword [ebx - 8]
call sub.libc.dll_operator_delete_void_
mov edx, ebp
add esp, 4
test byte [ebx - 0x54], 1
je 0x402f20
push dword [ebx - 0x4c]
call sub.libc.dll_operator_delete_void_
mov edx, ebp
add esp, 4
jmp 0x402f20
imul eax, dword [esp + 0x88], 0x68
add edi, eax
test esi, esi
je 0x4031f9
push esi
mov esi, edx
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp + 8], esi
jmp 0x4031fd
mov eax, dword [esp]
mov edx, esi
add esi, eax
mov edi, ebx
mov dword [esp + 4], esi
mov eax, edi
sub eax, edx
mov ebp, edi
cmp eax, ebx
jae 0x403048
nop word cs:[eax + eax]
movzx ecx, byte [eax + 0x10]
mov byte [ebp + 0x10], cl
movups xmm0, xmmword [eax]
movups xmmword [ebp], xmm0
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x1c], ecx
movsd xmm0, qword [eax + 0x14]
movsd qword [ebp + 0x14], xmm0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
movsd xmm0, qword [eax + 0x50]
movsd qword [ebp + 0x50], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ebp + 0x40], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmm1, xmmword [eax + 0x30]
movups xmmword [ebp + 0x30], xmm1
movups xmmword [ebp + 0x20], xmm0
movsd xmm0, qword [eax + 0x58]
movsd qword [ebp + 0x58], xmm0
mov ecx, dword [eax + 0x60]
mov dword [ebp + 0x60], ecx
mov dword [eax + 0x60], 0
mov dword [eax + 0x5c], 0
mov dword [eax + 0x58], 0
add ebp, 0x68
add eax, 0x68
cmp eax, ebx
jb 0x402fc0
add edx, dword [esp + 0x18]
mov dword [esp + 0x20], ebp
cmp edi, edx
je 0x403150
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0x48]
add edx, eax
sar eax, 3
imul eax, eax, 0xc4ec4ec5
add edi, 0xfffffff8
mov ecx, dword [esp + 0x10]
lea esi, [ecx + edx]
add esi, 0xfffffff1
imul eax, eax, 0xffffff98
mov dword [esp + 8], eax
xor ebx, ebx
jmp 0x4030bb
lea eax, [edi + ebx]
add eax, 0xfffffff8
mov ecx, dword [esi + ebx + 7]
mov dword [eax + 8], ecx
movsd xmm0, qword [esi + ebx - 1]
movsd qword [eax], xmm0
mov word [esi + ebx - 1], 0
add ebx, 0xffffff98
cmp dword [esp + 8], ebx
je 0x403150
movzx eax, byte [esi + ebx - 0x49]
mov byte [edi + ebx - 0x50], al
movups xmm0, xmmword [esi + ebx - 0x59]
movups xmmword [edi + ebx - 0x60], xmm0
test byte [edi + ebx - 0x4c], 1
je 0x4030e1
push dword [edi + ebx - 0x44]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea eax, [edi + ebx]
add eax, 0xffffffb4
lea ecx, [esi + ebx - 0x45]
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
mov word [esi + ebx - 0x45], 0
movsd xmm0, qword [esi + ebx - 9]
movsd qword [edi + ebx - 0x10], xmm0
movups xmm0, xmmword [esi + ebx - 0x19]
movups xmmword [edi + ebx - 0x20], xmm0
movups xmm0, xmmword [esi + ebx - 0x39]
movups xmm1, xmmword [esi + ebx - 0x29]
movups xmmword [edi + ebx - 0x30], xmm1
movups xmmword [edi + ebx - 0x40], xmm0
test byte [edi + ebx - 8], 1
je 0x403090
push dword [edi + ebx]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403090
mov ecx, dword [esp]
mov eax, dword [esp + 4]
cmp eax, ecx
je 0x403212
xor esi, esi
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
nop dword [eax]
movzx eax, byte [ecx + esi + 0x10]
mov byte [ebx + esi + 0x10], al
movups xmm0, xmmword [ecx + esi]
movups xmmword [ebx + esi], xmm0
lea ecx, [ebx + esi]
add ecx, 0x14
mov eax, dword [esp]
add eax, esi
add eax, 0x14
push eax
call fcn.0041d23a
mov eax, dword [esp]
movups xmm0, xmmword [eax + esi + 0x20]
mov eax, dword [esp]
movups xmm1, xmmword [eax + esi + 0x30]
movups xmmword [ebx + esi + 0x20], xmm0
movups xmmword [ebx + esi + 0x30], xmm1
mov eax, dword [esp]
movups xmm0, xmmword [eax + esi + 0x40]
movups xmmword [ebx + esi + 0x40], xmm0
mov eax, dword [esp]
movsd xmm0, qword [eax + esi + 0x50]
movsd qword [ebx + esi + 0x50], xmm0
lea ecx, [ebx + esi + 0x58]
mov eax, dword [esp]
add eax, esi
add eax, 0x58
push eax
call fcn.0041d23a
mov ecx, dword [esp]
lea eax, [ecx + esi]
add eax, 0x68
add esi, 0x68
cmp eax, dword [esp + 4]
jne 0x403170
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0x10]
jmp 0x403201
mov dword [esp + 8], edx
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
test esi, esi
jne 0x403250
jmp 0x4028cf
mov dword [esp + 8], ebp
jmp 0x40322a
mov edi, ebx
mov dword [esp + 0x20], edi
test ebp, ebp
jg 0x402d88
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x4028cf
nop word cs:[eax + eax]
mov dword [esp + 0x10], ebx
mov ebx, edi
mov edi, dword [esp + 0x50]
jmp 0x403263
add edi, 0xffffff98
cmp edi, esi
je 0x4028c0
test byte [edi - 0x10], 1
je 0x40327c
push dword [edi - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [edi - 0x54], 1
je 0x403260
push dword [edi - 0x4c]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403260
mov eax, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
cmp ebx, edi
je 0x403394
cmp byte [0x425a5a], 0
mov ah, byte [0x425a43]
movzx edx, byte [0x425a4d]
movzx ecx, byte [0x425a58]
mov ch, byte [0x425a47]
mov al, byte [0x425a9c]
je 0x40339b
test ah, ah
je 0x4034dd
cmp ebx, edi
je 0x4037b1
lea esi, [ebx + 0x68]
jmp 0x403414
cmp ebp, ebx
je 0x403aab
lea esi, [esp + 0x1c]
jmp 0x40331c
mov dword [esp + 0x20], edi
push edi
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ebx, dword [esp + 0x3c]
add ebp, 0xc
cmp ebp, ebx
je 0x403aab
movzx eax, byte [ebp]
lea ecx, [ebp + 1]
mov edx, eax
shr edx, 1
test al, 1
cmovne ecx, dword [ebp + 8]
mov dword [esp + 0x4c], ecx
cmovne edx, dword [ebp + 4]
mov dword [esp + 0x50], edx
sub esp, 8
movsd xmm0, qword [esp + 0x54]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.00403fe0
add esp, 8
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x403311
mov ebx, dword [esp + 0x20]
jmp 0x403363
add ebx, 0xffffff98
cmp ebx, edi
je 0x403300
test byte [ebx - 0x10], 1
je 0x403378
push dword [ebx - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [ebx - 0x54], 1
je 0x403360
push dword [ebx - 0x4c]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403360
xor edi, edi
xor ebx, ebx
jmp 0x4037b3
mov edi, ebx
jmp 0x4037b3
or al, ch
test ah, ah
je 0x403512
test dl, dl
je 0x403545
test cl, cl
je 0x4035a8
test al, al
je 0x403624
mov eax, dword [ebx + 0x44]
and eax, 7
cmp eax, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4033bd
jmp 0x4037b1
mov dword [0x425a70], 0
jmp 0x401c8e
mov dword [0x425a70], 3
jmp 0x401c8e
lea eax, [ebx + 0x58]
mov ecx, dword [esi + 0x60]
mov dword [eax + 8], ecx
movsd xmm0, qword [esi + 0x58]
movsd qword [eax], xmm0
mov word [esi + 0x58], 0
add ebx, 0x68
add esi, 0x68
cmp esi, edi
je 0x4037b3
mov eax, dword [esi + 0x44]
test al, 1
jne 0x40342c
cmp byte [0x425a5a], 0
jne 0x403411
test al, 1
je 0x403439
cmp byte [0x425a43], 0
jne 0x403411
test al, 2
jne 0x403446
cmp byte [0x425a4d], 0
jne 0x403411
test al, 4
je 0x403453
cmp byte [0x425a58], 0
jne 0x403411
test al, al
jns 0x403469
cmp byte [0x425a47], 0
jne 0x403469
cmp byte [0x425a9c], 0
je 0x403411
movzx eax, byte [esi + 0x10]
mov byte [ebx + 0x10], al
movups xmm0, xmmword [esi]
movups xmmword [ebx], xmm0
test byte [ebx + 0x14], 1
je 0x403487
push dword [ebx + 0x1c]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea eax, [ebx + 0x14]
lea ecx, [esi + 0x14]
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
mov word [esi + 0x14], 0
movsd xmm0, qword [esi + 0x50]
movsd qword [ebx + 0x50], xmm0
movups xmm0, xmmword [esi + 0x40]
movups xmmword [ebx + 0x40], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmm1, xmmword [esi + 0x30]
movups xmmword [ebx + 0x30], xmm1
movups xmmword [ebx + 0x20], xmm0
test byte [ebx + 0x58], 1
je 0x4033f6
push dword [ebx + 0x60]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x4033f6
or al, ch
test dl, dl
je 0x40357d
test cl, cl
je 0x4035cb
test al, al
je 0x403643
mov eax, dword [ebx + 0x44]
and eax, 7
cmp eax, 3
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4034f7
jmp 0x4037b1
test dl, dl
je 0x4035ec
test cl, cl
je 0x403662
test al, al
je 0x4036ce
mov eax, dword [ebx + 0x44]
and eax, 6
cmp eax, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x40352a
jmp 0x4037b1
test cl, cl
je 0x403680
test al, al
je 0x403572
test byte [ebx + 0x44], 5
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403551
jmp 0x4037b1
add ebx, 0x68
cmp ebx, edi
je 0x4037b1
test byte [ebx + 0x44], 0x85
je 0x403567
jmp 0x4032d9
test cl, cl
je 0x4036b0
test al, al
je 0x4036ed
mov eax, dword [ebx + 0x44]
and eax, 5
cmp eax, 1
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x40358d
jmp 0x4037b1
test al, al
je 0x40370c
mov eax, dword [ebx + 0x44]
and eax, 3
cmp eax, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4035b0
jmp 0x4037b1
test al, al
je 0x40372b
mov eax, dword [ebx + 0x44]
not eax
test al, 3
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4035d3
jmp 0x4037b1
test cl, cl
je 0x403747
test al, al
je 0x403619
test byte [ebx + 0x44], 4
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4035f8
jmp 0x4037b1
add ebx, 0x68
cmp ebx, edi
je 0x4037b1
test byte [ebx + 0x44], 0x84
je 0x40360e
jmp 0x4032d9
mov eax, 0x87
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403629
jmp 0x4037b1
mov eax, 0x87
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 3
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403648
jmp 0x4037b1
test al, al
je 0x40377b
test byte [ebx + 0x44], 2
je 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x40366a
jmp 0x4037b1
test al, al
je 0x4036a5
test byte [ebx + 0x44], 1
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403684
jmp 0x4037b1
add ebx, 0x68
cmp ebx, edi
je 0x4037b1
test byte [ebx + 0x44], 0x81
je 0x40369a
jmp 0x4032d9
test al, al
je 0x403797
test byte [ebx + 0x44], 1
je 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4036b8
jmp 0x4037b1
mov eax, 0x86
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4036d3
jmp 0x4037b1
mov eax, 0x85
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 1
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x4036f2
jmp 0x4037b1
mov eax, 0x83
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403711
jmp 0x4037b1
mov eax, 0x83
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 3
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403730
jmp 0x4037b1
test al, al
je 0x403770
mov eax, edi
sub eax, ebx
add eax, 0xffffff98
mov ecx, 0x4ec4ec4f
mul ecx
shr edx, 5
imul eax, edx, 0x68
add ebx, eax
add ebx, 0x68
jmp 0x4032d9
add ebx, 0x68
cmp ebx, edi
je 0x4037b1
test byte [ebx + 0x44], 0x80
je 0x403769
jmp 0x4032d9
mov eax, 0x82
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 2
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x403780
jmp 0x4037b1
mov eax, 0x81
mov ecx, dword [ebx + 0x44]
and ecx, eax
cmp ecx, 1
jne 0x4032d9
add ebx, 0x68
cmp ebx, edi
jne 0x40379c
mov ebx, edi
lea ecx, [esp + 0x1c]
mov edx, ebx
push edi
call fcn.004079c0
add esp, 4
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
cmp byte [0x425a6c], 0
jne 0x403818
mov eax, esi
sub eax, edi
sar eax, 3
imul eax, eax, 0xc4ec4ec5
bsr ecx, eax
xor ecx, 0x1f
add ecx, ecx
xor ecx, 0x3e
xor eax, eax
cmp esi, edi
cmovne eax, ecx
cmp byte [0x425a46], 0
je 0x403809
mov ecx, edi
mov edx, esi
push 1
push eax
call fcn.00407b30
jmp 0x403815
mov ecx, edi
mov edx, esi
push 1
push eax
call fcn.0040a340
add esp, 8
mov edx, esi
cmp edi, esi
je 0x403952
lea eax, [edi + 0x68]
mov edx, esi
cmp eax, esi
jne 0x403840
jmp 0x403952
add edi, 0xd0
cmp edi, esi
mov edi, ebx
je 0x403949
lea ebx, [edi + 0x68]
mov ecx, edi
mov edx, ebx
call fcn.00409630
test al, al
jne 0x403830
mov ecx, ebx
mov edx, edi
call fcn.00409630
test al, al
jne 0x403830
mov edx, esi
cmp edi, esi
je 0x403952
lea ebx, [edi + 0xd0]
cmp ebx, esi
je 0x40394d
mov ebp, edi
jmp 0x4038a5
lea edi, [ebp + 0x68]
add ebp, 0xc0
mov eax, dword [ebx + 0x60]
mov dword [ebp + 8], eax
movsd xmm0, qword [ebx + 0x58]
movsd qword [ebp], xmm0
mov word [ebx + 0x58], 0
mov ebp, edi
add ebx, 0x68
cmp ebx, esi
je 0x40394d
mov ecx, ebp
mov edx, ebx
call fcn.00409630
test al, al
jne 0x4038bf
mov ecx, ebx
mov edx, ebp
call fcn.00409630
test al, al
je 0x40389a
movzx eax, byte [ebx + 0x10]
mov byte [ebp + 0x78], al
movups xmm0, xmmword [ebx]
movups xmmword [ebp + 0x68], xmm0
test byte [ebp + 0x7c], 1
je 0x4038e1
push dword [ebp + 0x84]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea eax, [ebp + 0x7c]
lea ecx, [ebx + 0x14]
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
mov word [ebx + 0x14], 0
movsd xmm0, qword [ebx + 0x50]
movsd qword [ebp + 0xb8], xmm0
movups xmm0, xmmword [ebx + 0x40]
movups xmmword [ebp + 0xa8], xmm0
movups xmm0, xmmword [ebx + 0x20]
movups xmm1, xmmword [ebx + 0x30]
movups xmmword [ebp + 0x98], xmm1
movups xmmword [ebp + 0x88], xmm0
test byte [ebp + 0xc0], 1
je 0x403879
push dword [ebp + 0xc8]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403879
mov edx, esi
jmp 0x403952
add edi, 0x68
mov edx, edi
lea ecx, [esp + 0x1c]
push esi
call fcn.004079c0
add esp, 4
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
cmp ebp, ebx
je 0x403a9e
mov dword [esp], ebp
jmp 0x403994
lea edx, [ecx + 1]
mov dword [eax + 0x10], edx
mov byte [ecx], 0xa
add ebp, 0x68
cmp ebp, ebx
je 0x403a55
call fcn.0041d048
movzx edx, byte [ebp + 0x14]
test dl, 1
je 0x4039b0
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
jmp 0x4039b5
lea esi, [ebp + 0x15]
shr edx, 1
mov ecx, eax
push edx
push esi
call fcn.0041cfca
cmp dword [ebp + 0x40], 0
je 0x403a30
call fcn.0041d048
mov esi, eax
mov eax, dword [eax + 0x10]
cmp eax, dword [esi + 0xc]
jae 0x4039e0
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov byte [eax], 0x20
jmp 0x4039eb
mov ecx, esi
push 0x20
call fcn.0041cfd0
mov esi, eax
mov eax, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x40]
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
sub edx, ecx
cmp edx, edi
jae 0x403a10
mov ecx, esi
push edi
push eax
call fcn.0041cfca
jmp 0x403a30
test edi, edi
je 0x403a30
push edi
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [esi + 0x10], edi
nop word cs:[eax + eax]
call fcn.0041d048
mov ecx, dword [eax + 0x10]
cmp ecx, dword [eax + 0xc]
jb 0x403980
mov ecx, eax
push 0xa
call fcn.0041cfd0
add ebp, 0x68
cmp ebp, ebx
jne 0x403994
mov ebp, dword [esp]
test ebp, ebp
jne 0x403a67
jmp 0x403aab
add ebx, 0xffffff98
cmp ebx, ebp
je 0x403aa2
test byte [ebx - 0x10], 1
jne 0x403a80
test byte [ebx - 0x54], 1
je 0x403a60
jmp 0x403a91
push dword [ebx - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [ebx - 0x54], 1
je 0x403a60
push dword [ebx - 0x4c]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403a60
test ebp, ebp
je 0x403aab
push ebp
call sub.libc.dll_operator_delete_void_
add esp, 4
movzx ebx, byte [0x425a81]
mov edi, dword [esp + 0x60]
test edi, edi
je 0x403afb
mov esi, dword [esp + 0x64]
mov eax, edi
cmp esi, edi
jne 0x403ad7
jmp 0x403aee
add esi, 0xfffffff4
cmp esi, edi
je 0x403aea
test byte [esi - 0xc], 1
je 0x403ad0
push dword [esi - 4]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403ad0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], edi
push eax
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x118], 1
je 0x403b14
push dword [esp + 0x120]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp], ebx
lea ecx, [esp + 0x1a8]
call fcn.004078c0
mov dword [esp + 0x264], 0x420164
mov eax, dword [esp + 0x298]
lea ecx, [esp + 0x2a4]
cmp eax, ecx
je 0x403b49
push eax
call sub.msvcrt.dll_free
add esp, 4
lea ecx, [esp + 0x264]
call fcn.0041d030
mov edi, dword [esp + 0xec]
test edi, edi
je 0x403bb2
mov ebx, dword [esp + 0xe8]
shl edi, 2
xor ebp, ebp
mov esi, 0x1e
nop word cs:[eax + eax]
lea ecx, [ebx + ebp]
sub ecx, dword [esp + 0xe8]
sar ecx, 2
shr ecx, 7
cmp ecx, 0x1e
cmovae ecx, esi
mov eax, 0x1000
shl eax, cl
push 8
push eax
push dword [ebx + ebp]
call fcn.0041d006
add esp, 0xc
add ebp, 4
cmp edi, ebp
jne 0x403b80
mov edi, dword [esp + 0x104]
mov eax, dword [esp + 0x108]
test eax, eax
je 0x403c31
lea esi, [edi + eax*8]
lea ebx, [esp + 0xf4]
nop
push 8
push dword [edi + 4]
push dword [edi]
call fcn.0041d006
add esp, 0xc
add edi, 8
cmp edi, esi
jne 0x403bd0
mov edi, dword [esp + 0x104]
mov esi, dword [esp]
lea eax, [esp + 0x110]
cmp edi, eax
je 0x403c04
push edi
call sub.msvcrt.dll_free
add esp, 4
mov eax, dword [esp + 0xe8]
cmp eax, ebx
je 0x403c18
push eax
call sub.msvcrt.dll_free
add esp, 4
lea ecx, [esp + 0x2d4]
call fcn.0041d0a8
mov eax, esi
add esp, 0x32c
pop esi
pop edi
pop ebx
pop ebp
ret
lea ebx, [esp + 0xf4]
mov esi, dword [esp]
lea eax, [esp + 0x110]
cmp edi, eax
jne 0x403bfb
jmp 0x403c04
add edi, dword [esp + 0x48]
lea ecx, [edi + ebp]
add ecx, 0x14
call fcn.00407af0
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x48]
lea ecx, [eax + ebp]
add ecx, 0x58
call fcn.00407af0
call fcn.00407b10
call fcn.00407b20
mov ecx, 0x425a90
call fcn.00416e10
mov ecx, 0x425a74
call fcn.00416e10
lea ecx, [esp + 0x1c]
call fcn.00407af0
int3