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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xbc0
lea ecx, [ebp + 8]
cmp byte [0x413dc4], 0
je 0x404864
mov word [esp + 0x7d0], 0x105
mov eax, dword [ecx]
mov dword [esp + 0x7c0], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x7c4], eax
mov word [esp + 0x6c], 0
sub esp, 0x14
movzx eax, word [esp + 0x80]
mov word [esp + 0x10], ax
lea eax, [esp + 0x7d4]
mov dword [esp + 4], eax
lea eax, [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
call fcn.0040dc64
add esp, 0x14
test byte [esp + 0x94], 1
jne 0x4048e9
call fcn.0040ddc0
jmp 0x404947
cmp byte [0x413b24], 0
je 0x4047eb
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp ecx, 1
jne 0x4048ab
cmp byte [eax], 0x2d
jne 0x4048ab
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2d
ja 0x4053f1
mov ecx, eax
push 0x2e
push str.error:_cannot_use__i_when_reading_from_stdin._n
call fcn.0040dc4c
xor ebx, ebx
jmp 0x40686c
mov word [esp + 0x178], 0x105
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
lea eax, [esp + 0x168]
lea ecx, [esp + 0x8c]
push eax
push ecx
call fcn.0040dc6a
add esp, 8
test byte [esp + 0x94], 1
je 0x40485a
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x7c4], ecx
mov dword [esp + 0x7c0], eax
test eax, eax
je 0x404947
call fcn.0040dcfa
mov esi, eax
lea eax, [esp + 0x7c0]
lea ecx, [esp + 0x168]
push eax
call fcn.0040dd60
movzx eax, byte [esp + 0x168]
test al, 1
je 0x404c27
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
jmp 0x404c30
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x8c], 0
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx + 8]
sub ecx, eax
je 0x4049c4
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], ecx
sub esp, 8
movsd xmm0, qword [esp + 0x154]
movsd qword [esp], xmm0
call fcn.0040dbc8
add esp, 8
test eax, eax
je 0x4049cb
mov esi, eax
call fcn.0040dcfa
mov edi, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, 0x31
ja 0x404c79
mov ecx, edi
push 0x32
push str.error:_encoding_with_unsupported_byte_order_mark__
call fcn.0040dc4c
mov edi, eax
mov ebx, dword [eax + 0x10]
jmp 0x404ca8
xor ebx, ebx
jmp 0x40683e
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
push 0x1c
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
push 1
call fcn.0040dcf4
lock inc dword [esi + 4]
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x170], 0
lock inc dword [esi + 4]
mov dword [esp + 8], esi
mov dword [esp + 0xbc], esi
lea edx, [esp + 0xbc]
lea eax, [esp + 0x168]
lea edi, [esp + 0x7c0]
mov ecx, edi
push edx
push eax
call fcn.0040db7a
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x404a60
lock dec dword [ecx + 4]
jne 0x404a60
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x168], 1
je 0x404a79
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
push 8
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
call fcn.0040db8c
mov dword [esp + 0xb0], esi
inc dword [esi]
push pe_nt_image_headers32
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
xorps xmm0, xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x40], xmm0
movups xmmword [eax + 0x50], xmm0
movups xmmword [eax + 0x60], xmm0
mov dword [eax + 0x74], 0
mov dword [eax + 0x70], 0
mov ecx, 0xff800000
and ecx, dword [eax + 4]
or ecx, 0x6f0
mov dword [eax + 4], ecx
movaps xmm0, xmmword [0x40e070]
movups xmmword [eax + 8], xmm0
mov dword [eax + 0x18], 0x32
mov dword [eax + 0x1c], 0x10
or byte [eax + 0x20], 1
mov dword [eax + 0x24], 8
mov dword [eax + 0x28], 0
mov byte [eax + 0x2c], 0
mov dword [esp + 0x64], eax
mov dword [eax], 1
lea edx, [esp + 0x64]
lea eax, [esp + 0xb0]
lea ebx, [esp + 0x168]
mov ecx, ebx
push 1
push 0
push edx
push eax
call fcn.0040dbb0
mov esi, dword [esp + 0x64]
test esi, esi
je 0x404b45
dec dword [esi]
jne 0x404b45
mov ecx, esi
call fcn.0040a830
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
mov esi, dword [esp + 0xb0]
test esi, esi
je 0x404b64
dec dword [esi]
jne 0x404b64
mov ecx, esi
call fcn.0040db92
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
lea esi, [esp + 0x5e8]
mov ecx, esi
push 0
push edi
push ebx
call fcn.0040db9e
mov dword [esp + 0x3c], str._irrelevant_
mov dword [esp + 0x40], 0xc
lea ecx, [esp + 0x9e0]
push dword [esp + 0x24]
call fcn.0040dc70
sub esp, 0x1c
movups xmm0, xmmword [esp + 0x9fc]
movups xmmword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov ecx, esi
mov edx, edi
call fcn.00409950
add esp, 0x1c
mov dword [esp + 0x34], eax
mov esi, dword [0x4131ec]
mov eax, dword [0x4131f0]
mov ecx, dword [0x413c2c]
mov edi, dword [0x413c30]
cmp esi, eax
je 0x404e1e
cmp ecx, edi
jne 0x404bfe
mov ecx, dword [0x413b9c]
cmp ecx, dword [0x413ba0]
je 0x405445
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2d
ja 0x405344
mov ecx, eax
push 0x2e
push str.error:_cannot_use__lines_with__offset__length_n
call fcn.0040dc4c
jmp 0x405368
shr eax, 1
lea edx, [esp + 0x169]
mov ecx, esi
push eax
push edx
call fcn.0040dc4c
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x404d80
mov byte [ecx], 0xa
inc dword [eax + 0x10]
test byte [esp + 0x168], 1
je 0x404c64
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov bl, 1
test byte [esp + 0x94], 1
je 0x406851
jmp 0x40686c
movups xmm0, xmmword [0x40f17f]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x40f16f]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.error:_encoding_with_unsupported_byte_order_mark__]
movups xmmword [eax], xmm0
mov word [eax + 0x30], 0x2220
mov ebx, dword [edi + 0x10]
add ebx, 0x32
mov dword [edi + 0x10], ebx
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edx, esi
mov esi, eax
mov eax, dword [edi + 0xc]
sub eax, ebx
cmp esi, eax
jbe 0x404cce
mov ecx, edi
push esi
push edx
call fcn.0040dc4c
mov edi, eax
mov ebx, dword [eax + 0x10]
jmp 0x404ce5
test esi, esi
je 0x404ce5
push esi
push edx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebx, dword [edi + 0x10]
add ebx, esi
mov dword [edi + 0x10], ebx
mov eax, dword [edi + 0xc]
sub eax, ebx
cmp eax, 9
ja 0x404cff
mov ecx, edi
push 0xa
push str.__detected
call fcn.0040dc4c
jmp 0x404d16
mov word [ebx + 8], 0x6465
mov dword [ebx + 4], 0x74636574
mov dword [ebx], 0x65642022
add dword [edi + 0x10], 0xa
lea eax, [ebp + 8]
mov ebx, dword [eax]
mov esi, dword [eax + 4]
cmp esi, 1
jne 0x404d2c
cmp byte [ebx], 0x2d
je 0x404de7
call fcn.0040dcfa
mov edi, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, 9
ja 0x404da1
mov ecx, edi
push 0xa
push str._in_file_
call fcn.0040dc4c
mov edi, eax
mov eax, dword [eax + 0x10]
mov ecx, dword [edi + 0xc]
sub ecx, eax
cmp ecx, esi
jb 0x404dc6
test esi, esi
je 0x404d73
push esi
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [edi + 0x10]
mov dword [edi + 0x10], esi
mov eax, esi
cmp dword [edi + 0xc], eax
je 0x404dd9
mov byte [eax], 0x27
inc dword [edi + 0x10]
jmp 0x404de7
mov ecx, eax
push 1
push 0x40ee79
call fcn.0040dc4c
test byte [esp + 0x168], 1
jne 0x404c55
jmp 0x404c64
mov word [eax + 8], 0x2720
mov dword [eax + 4], 0x656c6966
mov dword [eax], 0x206e6920
mov eax, dword [edi + 0x10]
add eax, 0xa
mov dword [edi + 0x10], eax
mov ecx, dword [edi + 0xc]
sub ecx, eax
cmp ecx, esi
jae 0x404d5c
mov ecx, edi
push esi
push ebx
call fcn.0040dc4c
mov edi, eax
mov eax, dword [eax + 0x10]
cmp dword [edi + 0xc], eax
jne 0x404d78
mov ecx, edi
push 1
push 0x40f1a8
call fcn.0040dc4c
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 1
ja 0x404e0e
mov ecx, eax
push 2
push 0x40f1aa
call fcn.0040dc4c
mov bl, 1
jmp 0x40683e
mov word [ecx], 0xa2e
add dword [eax + 0x10], 2
mov bl, 1
jmp 0x40683e
cmp ecx, edi
jne 0x404e4b
mov dword [esp + 0x468], 0
lea eax, [esp + 0x468]
mov ecx, 0x413c2c
push eax
call fcn.00409f20
mov edi, dword [0x413c30]
mov ecx, dword [0x413c2c]
mov edx, edi
sub edx, ecx
mov eax, edx
sar eax, 2
mov ebx, dword [0x413ba0]
mov esi, dword [0x413b9c]
mov dword [esp + 4], ebx
sub ebx, esi
sar ebx, 2
mov dword [esp + 0x60], eax
cmp eax, ebx
je 0x404e84
cmp edx, 4
jne 0x40541c
cmp esi, dword [esp + 4]
jne 0x40541c
mov dword [esp + 4], 0
cmp edi, ecx
je 0x40536e
mov eax, dword [esp + 0x34]
lea ecx, [eax + 1]
mov dword [esp + 0x38], ecx
mov ecx, 0xfffffffe
sub ecx, eax
mov eax, 1
shl eax, cl
mov dword [esp + 0xa0], eax
mov dword [esp + 0x28], ecx
shr ecx, 5
mov dword [esp + 0x9c], ecx
lea edi, [esp + 0x5e8]
xor esi, esi
jmp 0x404ee8
mov dword [esi + 4], ebx
mov dword [esi], ecx
add esi, 8
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x14]
inc esi
cmp esi, dword [esp + 0x60]
je 0x4058e0
mov eax, dword [0x413c2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 8]
sub ecx, dword [edx + 4]
cmp dword [eax + esi*4], ecx
jae 0x4058b7
mov byte [esp + 0x468], 0
cmp dword [esp + 0x38], 2
jb 0x404f90
lea ecx, [esp + 0x650]
mov edx, dword [esp + 0x34]
mov eax, edx
test edx, edx
jns 0x404f50
mov edx, dword [esp + 0x670]
lea ecx, [esp + 0x65c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
test dword [edx + edi*4], ebx
lea edi, [esp + 0x5e8]
je 0x404f6a
mov ecx, dword [ecx]
test ecx, ecx
je 0x404f90
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
mov eax, 0
cmovle ecx, eax
jmp 0x404f92
mov ecx, edi
lea eax, [esp + 0x468]
push eax
push dword [esp + 0x2c]
call fcn.0040dc2e
cmp byte [esp + 0x468], 0
je 0x404f5c
nop word [eax + eax]
xor ecx, ecx
mov eax, dword [0x413c2c]
mov eax, dword [eax + esi*4]
add ecx, eax
mov dword [esp + 4], ecx
mov edx, dword [0x413ba0]
mov ecx, dword [0x413b9c]
sub edx, ecx
sar edx, 2
cmp esi, edx
mov dword [esp + 0x14], esi
jae 0x404fdb
mov ebx, dword [ecx + esi*4]
add eax, ebx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 8]
sub ecx, dword [edx + 4]
cmp eax, ecx
ja 0x40627c
mov esi, dword [esp + 4]
add ebx, esi
jmp 0x405079
mov byte [esp + 0x468], 0
cmp dword [esp + 0x38], 2
jb 0x405073
lea ecx, [esp + 0x650]
mov edx, dword [esp + 0x34]
mov eax, edx
test edx, edx
jns 0x40502b
mov edx, dword [esp + 0x670]
lea ecx, [esp + 0x65c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
test dword [edx + edi*4], ebx
lea edi, [esp + 0x5e8]
je 0x405056
mov ecx, dword [ecx]
test ecx, ecx
je 0x405073
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov esi, dword [eax]
test esi, esi
js 0x405073
mov eax, dword [esp + 0x34]
mov dword [esp + 0x468], eax
mov ecx, edi
push eax
call fcn.0040dc22
mov ebx, eax
add ebx, esi
jmp 0x405075
mov ecx, edi
lea eax, [esp + 0x468]
push eax
push dword [esp + 0x2c]
call fcn.0040dc2e
cmp byte [esp + 0x468], 0
je 0x405037
xor ebx, ebx
mov esi, dword [esp + 4]
and esi, 0x7fffffff
mov ecx, edi
push esi
call fcn.0040a0a0
mov byte [esp + 0x468], 0
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x405110
lea ecx, [esp + 0x650]
mov edx, eax
test eax, eax
js 0x4050ac
mov eax, dword [ecx]
test eax, eax
jne 0x4050d4
jmp 0x405110
mov edx, 0xfffffffe
sub edx, eax
mov eax, dword [esp + 0x670]
mov ecx, edx
shr ecx, 5
mov eax, dword [eax + ecx*4]
bt eax, edx
jae 0x4050e7
lea ecx, [esp + 0x65c]
mov eax, dword [ecx]
test eax, eax
je 0x405110
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
mov ecx, 0x7fffffff
and eax, ecx
sub esi, eax
jmp 0x405112
mov ecx, edi
lea eax, [esp + 0x468]
push eax
push edx
call fcn.0040dc2e
cmp byte [esp + 0x468], 0
je 0x4050da
nop word cs:[eax + eax]
xor esi, esi
and ebx, 0x7fffffff
mov ecx, edi
push ebx
call fcn.0040a0a0
mov byte [esp + 0x468], 0
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x4051a0
lea ecx, [esp + 0x650]
mov edx, eax
test eax, eax
js 0x405145
mov eax, dword [ecx]
test eax, eax
jne 0x40516d
jmp 0x4051a0
mov edx, 0xfffffffe
sub edx, eax
mov eax, dword [esp + 0x670]
mov ecx, edx
shr ecx, 5
mov eax, dword [eax + ecx*4]
bt eax, edx
jae 0x405180
lea ecx, [esp + 0x65c]
mov eax, dword [ecx]
test eax, eax
je 0x4051a0
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
mov ecx, 0x7fffffff
and eax, ecx
sub ebx, eax
jmp 0x4051a2
mov ecx, edi
lea eax, [esp + 0x468]
push eax
push edx
call fcn.0040dc2e
cmp byte [esp + 0x468], 0
je 0x405173
nop word [eax + eax]
xor ebx, ebx
sub ebx, esi
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp esi, eax
jb 0x404ecd
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18]
mov edi, esi
sub edi, ecx
mov dword [esp + 0x30], edi
sar edi, 3
mov edx, edi
mov dword [esp + 0x10], edi
lea edx, [edi + 1]
cmp edx, 0x20000000
jae 0x406876
sub eax, ecx
mov edi, eax
sar edi, 2
cmp edi, edx
cmovbe edi, edx
cmp eax, 0x7ffffff8
mov eax, 0x1fffffff
cmovae edi, eax
test edi, edi
mov dword [esp + 0x5c], edi
je 0x405225
cmp edi, 0x20000000
jae 0x40687f
lea eax, [edi*8]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jmp 0x405227
xor eax, eax
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x10]
mov dword [eax + edx*8 + 4], ebx
lea ebx, [eax + edx*8]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [edx + edi*8], eax
mov eax, dword [esp + 0xc]
mov edx, esi
sub edx, ecx
je 0x405308
add edx, 0xfffffff8
cmp edx, 0x58
jae 0x405262
mov edx, esi
jmp 0x4052f0
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x30]
add eax, edi
mov edx, esi
sub edx, eax
cmp edx, 0x20
jae 0x405279
mov edx, esi
jmp 0x4052f0
mov eax, dword [esp + 0x2c]
shr eax, 3
inc eax
mov dword [esp + 0x2c], eax
and eax, 0xfffffffc
mov dword [esp + 0x98], eax
lea edx, [eax*8]
sub ebx, edx
mov eax, edx
mov edx, esi
sub edx, eax
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
add edi, eax
add edi, 0xfffffff0
mov eax, dword [esp + 0x98]
neg eax
mov dword [esp + 4], eax
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [esi + eax*8 - 0x20]
movups xmm1, xmmword [esi + eax*8 - 0x10]
movups xmmword [edi + eax*8], xmm1
movups xmmword [edi + eax*8 - 0x10], xmm0
add eax, 0xfffffffc
cmp dword [esp + 4], eax
jne 0x4052c0
mov eax, dword [esp + 0x98]
cmp dword [esp + 0x2c], eax
je 0x405304
nop dword [eax]
movsd xmm0, qword [edx - 8]
add edx, 0xfffffff8
movsd qword [ebx - 8], xmm0
add ebx, 0xfffffff8
cmp edx, ecx
jne 0x4052f0
mov ecx, dword [esp + 0x18]
lea edi, [esp + 0x5e8]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0xc]
lea eax, [esi + eax*8]
mov edx, dword [esp + 0x10]
lea edx, [esi + edx*8 + 8]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x404ed9
push ecx
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x404ed9
movups xmm0, xmmword [0x40f27b]
movups xmmword [ecx + 0x1e], xmm0
movups xmm0, xmmword [0x40f26d]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_cannot_use__lines_with__offset__length_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x2e
mov al, 1
mov dword [esp + 4], eax
mov ebx, dword [esp + 8]
mov esi, ebx
add esi, 4
lea ecx, [esp + 0x5e8]
call fcn.0040dba4
lea edi, [esp + 0x168]
mov ecx, edi
call fcn.0040dbb6
lea ecx, [esp + 0x7c0]
call fcn.0040db80
lock dec dword [esi]
jne 0x4053a9
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov bl, 1
cmp byte [esp + 4], 0
jne 0x406829
lea eax, [ebp + 8]
mov esi, dword [eax]
mov edx, dword [eax + 4]
cmp edx, 1
jne 0x4058f4
cmp byte [esi], 0x2d
jne 0x4058f4
movzx edx, byte [0x413714]
test dl, 1
je 0x4058ed
mov esi, dword [0x41371c]
mov edx, dword [0x413718]
jmp 0x4058f4
movups xmm0, xmmword [0x40f14e]
movups xmmword [ecx + 0x1e], xmm0
movups xmm0, xmmword [0x40f140]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_cannot_use__i_when_reading_from_stdin._n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x2e
xor ebx, ebx
jmp 0x40686c
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x3a
ja 0x4061b1
mov ecx, eax
push 0x3b
push str.error:_number_of__offset_and__length_arguments_must_match._n
call fcn.0040dc4c
jmp 0x405368
sub eax, esi
mov ecx, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
sar edx, 1
lea ecx, [edx + eax]
cmp ecx, 1
adc edx, eax
mov dword [esp + 0x60], edx
xor esi, esi
jmp 0x405480
mov dword [esi + 4], edi
mov dword [esi], ecx
add esi, 8
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x14]
inc esi
cmp esi, dword [esp + 0x60]
je 0x405372
mov ecx, dword [0x4131ec]
mov dword [esp + 0x14], esi
lea edx, [esi + esi*2]
movzx eax, byte [ecx + edx*4]
test al, 1
je 0x40549f
mov esi, dword [ecx + edx*4 + 8]
mov eax, dword [ecx + edx*4 + 4]
jmp 0x4054a5
shr eax, 1
lea esi, [ecx + edx*4]
inc esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
mov byte [esp + 0x70], 0x3a
mov eax, 1
mov dword [esp + 0x46c], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x468], eax
sub esp, 0xc
movsd xmm0, qword [esp + 0x474]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x58]
call fcn.0040dd4e
cmp eax, 0xffffffff
je 0x40550c
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
cmp eax, esi
mov edx, esi
cmovb edx, eax
inc eax
cmp esi, eax
cmovb eax, esi
lea edi, [ecx + eax]
sub esi, eax
jmp 0x405518
xor edi, edi
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
xor esi, esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x80]
movsd qword [esp], xmm0
lea eax, [esp + 0x478]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040dc88
add esp, 0x10
test al, al
jne 0x4061e5
cmp dword [esp + 0x46c], 0
jne 0x4061e5
mov ebx, dword [esp + 0x468]
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], edi
sub esp, 0x10
movsd xmm0, qword [esp + 0x80]
movsd qword [esp], xmm0
lea eax, [esp + 0x478]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040dc88
add esp, 0x10
test al, al
jne 0x4061e5
cmp dword [esp + 0x46c], 0
jne 0x4061e5
test ebx, ebx
je 0x406620
mov esi, dword [esp + 0x468]
cmp ebx, esi
ja 0x406645
mov edi, dword [esp + 0x34]
mov dword [esp + 0x84], edi
lea ecx, [esp + 0x5e8]
push 1
push ebx
mov ebx, ecx
push edi
call fcn.0040dc34
mov dword [esp + 0x48], edi
mov ecx, ebx
push 0xffffffffffffffff
push esi
mov esi, eax
push edi
call fcn.0040dc34
mov edi, eax
test esi, esi
sete al
test edi, edi
sete cl
or cl, al
mov dword [esp + 4], ecx
jne 0x405368
and esi, 0x7fffffff
mov ecx, ebx
push esi
call fcn.0040a0a0
mov byte [esp + 0x468], 0
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x405690
lea ecx, [esp + 0x650]
mov edx, eax
test eax, eax
jns 0x40565d
mov edx, 0xfffffffe
sub edx, eax
mov eax, dword [esp + 0x670]
mov ecx, edx
shr ecx, 5
mov eax, dword [eax + ecx*4]
bt eax, edx
jae 0x405676
lea ecx, [esp + 0x65c]
mov eax, dword [ecx]
test eax, eax
je 0x405690
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
mov ecx, 0x7fffffff
and eax, ecx
sub esi, eax
jmp 0x405692
mov ecx, ebx
lea eax, [esp + 0x468]
push eax
push edx
call fcn.0040dc2e
cmp byte [esp + 0x468], 0
je 0x405669
xor esi, esi
and edi, 0x7fffffff
mov ecx, ebx
push edi
call fcn.0040a0a0
mov byte [esp + 0x468], 0
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x405712
lea ecx, [esp + 0x650]
mov edx, eax
test eax, eax
jns 0x4056df
mov edx, 0xfffffffe
sub edx, eax
mov eax, dword [esp + 0x670]
mov ecx, edx
shr ecx, 5
mov eax, dword [eax + ecx*4]
bt eax, edx
jae 0x4056f8
lea ecx, [esp + 0x65c]
mov eax, dword [ecx]
test eax, eax
je 0x405712
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
mov ecx, 0x7fffffff
and eax, ecx
sub edi, eax
jmp 0x405714
mov ecx, ebx
lea eax, [esp + 0x468]
push eax
push edx
call fcn.0040dc2e
cmp byte [esp + 0x468], 0
je 0x4056eb
xor edi, edi
mov ebx, dword [esp + 8]
sub edi, esi
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp esi, eax
jb 0x405465
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov ebx, esi
sub ebx, ecx
mov dword [esp + 0x30], ebx
sar ebx, 3
mov edx, ebx
mov dword [esp + 0x38], ebx
lea edx, [ebx + 1]
cmp edx, 0x20000000
jae 0x406876
sub eax, ecx
mov ebx, eax
sar ebx, 2
cmp ebx, edx
cmovbe ebx, edx
cmp eax, 0x7ffffff8
mov eax, 0x1fffffff
cmovae ebx, eax
test ebx, ebx
mov dword [esp + 0x5c], ebx
je 0x40579b
cmp ebx, 0x20000000
jae 0x40687f
lea eax, [ebx*8]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jmp 0x40579d
xor eax, eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x38]
mov dword [eax + edx*8 + 4], edi
lea edi, [eax + edx*8]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [ebx + edx*8], eax
mov eax, dword [esp + 0x10]
mov edx, esi
sub edx, ecx
je 0x405878
add edx, 0xfffffff8
cmp edx, 0x58
jae 0x4057d4
mov edx, esi
jmp 0x405860
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x30]
add eax, ebx
mov edx, esi
sub edx, eax
cmp edx, 0x20
jae 0x4057ef
mov edx, esi
mov eax, dword [esp + 0x10]
jmp 0x405860
mov eax, dword [esp + 0x28]
shr eax, 3
inc eax
mov dword [esp + 0x28], eax
and eax, 0xfffffffc
mov dword [esp + 0x2c], eax
lea edx, [eax*8]
sub edi, edx
mov eax, edx
mov edx, esi
sub edx, eax
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
add ebx, eax
add ebx, 0xfffffff0
mov eax, dword [esp + 0x2c]
neg eax
mov dword [esp + 0xc], eax
xor eax, eax
movups xmm0, xmmword [esi + eax*8 - 0x20]
movups xmm1, xmmword [esi + eax*8 - 0x10]
movups xmmword [ebx + eax*8], xmm1
movups xmmword [ebx + eax*8 - 0x10], xmm0
add eax, 0xfffffffc
cmp dword [esp + 0xc], eax
jne 0x40582a
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
je 0x405874
nop word cs:[eax + eax]
movsd xmm0, qword [edx - 8]
add edx, 0xfffffff8
movsd qword [edi - 8], xmm0
add edi, 0xfffffff8
cmp edx, ecx
jne 0x405860
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ebx, eax
mov eax, dword [esp + 0x5c]
lea eax, [ebx + eax*8]
mov edx, dword [esp + 0x38]
lea edx, [ebx + edx*8 + 8]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
test ecx, ecx
mov ebx, dword [esp + 8]
je 0x405475
push ecx
call sub.libc.dll_operator_delete_void_
mov ebx, dword [esp + 0xc]
add esp, 4
jmp 0x405475
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0xd
ja 0x40620e
mov ecx, eax
push 0xe
push str.error:_offset
call fcn.0040dc4c
jmp 0x40622c
mov dword [esp + 4], 0
jmp 0x40536e
shr edx, 1
mov esi, 0x413715
test edx, edx
je 0x405a5c
movzx eax, byte [0x4139ac]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x4139ad
cmovne eax, dword [0x4139b4]
cmovne ecx, dword [0x4139b0]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
mov dword [esp + 0x13c], esi
mov dword [esp + 4], edx
mov dword [esp + 0x140], edx
movzx eax, byte [0x41368c]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x41368d
cmovne eax, dword [0x413694]
mov dword [esp + 0x134], eax
cmovne ecx, dword [0x413690]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], ecx
mov eax, dword [0x413524]
and eax, 1
sub esp, 0x2c
movsd xmm0, qword [esp + 0x158]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [esp + 0x160]
movsd qword [esp + 0x14], xmm0
movsd xmm0, qword [esp + 0x168]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x170]
movsd qword [esp + 4], xmm0
mov dword [esp + 0x28], eax
lea eax, [esp + 0x7ec]
mov dword [esp], eax
mov dword [esp + 0x24], 0
call fcn.0040dbda
add esp, 0x2c
test byte [esp + 0x9dc], 1
jne 0x405a85
mov dword [esp + 0xc], esi
movzx eax, byte [0x413814]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x413815
cmovne eax, dword [0x41381c]
mov dword [esp + 0x64], eax
cmovne ecx, dword [0x413818]
mov dword [esp + 0x68], ecx
lea edi, [esp + 0x168]
mov ecx, edi
lea eax, [esp + 0x64]
push eax
call fcn.0040dd54
movzx ebx, byte [esp + 0x168]
mov esi, dword [esp + 0x170]
test bl, 1
je 0x405b5e
mov ecx, dword [esp + 0x16c]
mov eax, esi
jmp 0x405b69
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x26
ja 0x405b33
mov ecx, eax
push 0x27
push str.error:_empty_filenames_are_not_allowed_n
call fcn.0040dc4c
jmp 0x406829
call fcn.0040dcfa
mov esi, eax
xor eax, eax
test byte [esp + 0x9dc], 1
je 0x405aaa
mov eax, dword [esp + 0x7c0]
mov dword [esp + 0x7c0], 0
mov dword [esp + 0xac], eax
lea eax, [esp + 0xac]
push eax
push edi
call fcn.0040dd12
add esp, 8
mov ecx, esi
push edi
call fcn.00406890
mov ecx, eax
push 0x40ee79
call fcn.00404740
test byte [esp + 0x168], 1
je 0x405aef
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x405aff
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 1
test byte [esp + 0x9dc], 1
je 0x40681d
mov ecx, dword [esp + 0x7c0]
mov dword [esp + 0x7c0], 0
test ecx, ecx
je 0x406829
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x406829
movsd xmm0, qword [0x40f1cc]
movsd qword [ecx + 0x1f], xmm0
movups xmm0, xmmword [0x40f1bd]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_empty_filenames_are_not_allowed_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x27
jmp 0x406829
mov ecx, ebx
shr ecx, 1
lea eax, [esp + 0x169]
cmp ecx, 4
je 0x405b95
cmp ecx, 5
jne 0x405bac
mov ecx, 0x68676972
xor ecx, dword [eax]
movzx eax, byte [eax + 4]
xor eax, 0x74
or eax, ecx
jne 0x405bac
mov al, 2
mov byte [esp + 0x934], al
test bl, 1
jne 0x405bc0
jmp 0x405bd1
push ecx
push str.left
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x406339
movzx eax, byte [esp + 0x934]
mov byte [esp + 0x934], al
test bl, 1
je 0x405bd1
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
movzx eax, byte [esp + 0x934]
cmp al, 2
je 0x405c82
movzx eax, al
cmp eax, 1
mov esi, dword [esp + 0xc]
jne 0x405cde
mov ecx, edi
push str.const
call fcn.00408ce0
lea ecx, [esp + 0x174]
push str.volatile
call fcn.00408ce0
lea ecx, [esp + 0x180]
push str.type
call fcn.00408ce0
lea ecx, [esp + 0x938]
lea eax, [esp + 0x18c]
push 3
push eax
push edi
call fcn.0040a1b0
test byte [esp + 0x180], 1
je 0x405c47
push dword [esp + 0x188]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x174], 1
je 0x405c60
push dword [esp + 0x17c]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x168], 1
je 0x405e05
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x405e05
mov ecx, edi
push str.type
call fcn.00408ce0
lea ecx, [esp + 0x174]
push str.const
call fcn.00408ce0
lea ecx, [esp + 0x180]
push str.volatile
call fcn.00408ce0
lea ecx, [esp + 0x938]
lea eax, [esp + 0x18c]
push 3
push eax
push edi
call fcn.0040a1b0
test byte [esp + 0x180], 1
mov esi, dword [esp + 0xc]
jne 0x405c38
jmp 0x405c47
mov dword [esp + 0x168], str.type
mov dword [esp + 0x16c], 4
sub esp, 0xc
movsd xmm0, qword [esp + 0x174]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x70]
call fcn.0040dd4e
cmp eax, 0xffffffff
je 0x405e05
mov byte [esp + 0x934], 3
lea esi, [esp + 0x174]
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 6
mov dword [esp + 0x124], 0x40f1ee
mov dword [esp + 0x128], 1
sub esp, 0x14
movsd xmm0, qword [esp + 0x138]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
lea ecx, [esp + 0x78]
call fcn.0040dd5a
mov eax, dword [esp + 0x168]
mov edx, dword [esp + 0x16c]
lea edi, [eax + edx*8]
mov dword [esp + 0x5e8], 0
mov dword [esp + 0x5ec], 0
mov dword [esp + 0x5f0], 0
lea ebx, [esp + 0x5e8]
mov ecx, ebx
push edx
push edi
push eax
call fcn.0040a4c0
lea ecx, [esp + 0x938]
push ebx
call fcn.00408d50
mov ecx, ebx
call fcn.004074a0
mov eax, dword [esp + 0x168]
cmp eax, esi
je 0x405dfa
push eax
call sub.msvcrt.dll_free
add esp, 4
mov esi, dword [esp + 0xc]
lea edi, [esp + 0x168]
cmp word [0x413464], 0
je 0x405e1d
movzx eax, byte [0x4134ac]
mov byte [esp + 0x95c], al
mov eax, dword [0x413a34]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x114], eax
sub ecx, eax
sar ecx, 3
mov dword [esp + 0x118], ecx
mov dword [esp + 0x10c], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x110], eax
sub esp, 0x24
movsd xmm0, qword [esp + 0x130]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x138]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x140]
movsd qword [esp + 8], xmm0
lea eax, [esp + 0x6c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x7e4]
mov dword [esp + 4], eax
lea ebx, [esp + 0x60]
mov dword [esp], ebx
call fcn.0040dbce
add esp, 0x24
cmp byte [esp + 0x8bd], 5
jne 0x405f7a
cmp byte [esp + 0x84e], 0
jne 0x405f7a
mov dword [esp + 0x104], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x108], eax
mov dword [esp + 0xfc], str.x_
mov dword [esp + 0x100], 4
sub esp, 0x18
movsd xmm0, qword [esp + 0x114]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x11c]
movsd qword [esp], xmm0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov ecx, edi
call fcn.0040dbe6
lea ecx, [esp + 0x5e8]
push edi
push ebx
call fcn.0040dbec
mov ecx, edi
call fcn.00408de0
cmp dword [esp + 0x5e8], 0
je 0x405f7a
call fcn.0040dcfa
mov ecx, eax
push str.Bad_Json_variable_insertion_n
call fcn.00404740
mov ecx, dword [esp + 0x5e8]
test ecx, ecx
je 0x405f7a
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x104]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebx
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.0040dbf2
add esp, 0x10
test byte [esp + 0x58], 1
jne 0x406139
lea eax, [esp + 0x18]
push eax
push ebx
push edi
call fcn.0040dbfe
add esp, 0xc
mov eax, dword [esp + 0x18]
test eax, eax
je 0x405fe8
mov dword [esp + 0x1c], eax
push eax
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x170]
mov dword [esp + 0x20], edx
movzx edx, byte [esp + 0x4c]
mov esi, edx
shr esi, 1
test dl, 1
lea edx, [esp + 0x4d]
cmovne edx, dword [esp + 0x54]
mov dword [esp + 0xec], edx
cmovne esi, dword [esp + 0x50]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xe4], ecx
sub eax, ecx
sar eax, 3
mov dword [esp + 0xe8], eax
mov byte [esp + 0x84], 1
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xe0], eax
sub esp, 0x24
movsd xmm0, qword [esp + 0x100]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x108]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x110]
movsd qword [esp + 8], xmm0
lea esi, [esp + 0xa8]
mov dword [esp + 0x20], esi
lea eax, [esp + 0x7e4]
mov dword [esp + 4], eax
lea edi, [esp + 0xe0]
mov dword [esp], edi
call fcn.0040dbe0
add esp, 0x24
lea ecx, [esp + 0x168]
push edi
push ebx
call fcn.0040dc46
lea edi, [esp + 0x40]
mov ecx, ebx
push dword [esp + 0x40]
call fcn.0040a590
mov ecx, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x4062a5
lea ecx, [esp + 0x16c]
mov dword [eax + 8], edi
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
xor eax, eax
jmp 0x4062a9
call fcn.0040dcfa
mov esi, eax
xor eax, eax
test byte [esp + 0x58], 1
je 0x406155
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
push eax
push edi
call fcn.0040dd12
add esp, 8
mov ecx, esi
push edi
call fcn.00406890
mov ecx, eax
push 0x40ee79
call fcn.00404740
test byte [esp + 0x168], 1
je 0x40619a
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4061aa
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 1
jmp 0x4067f9
movups xmm0, xmmword [0x40f33a]
movups xmmword [ecx + 0x2b], xmm0
movups xmm0, xmmword [0x40f32f]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x40f31f]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_number_of__offset_and__length_arguments_must_match._n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x3b
jmp 0x405368
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2b
ja 0x406310
mov ecx, eax
push 0x2c
push str.error:_invalid__start_line_:_end_line__pair_n
call fcn.0040dc4c
jmp 0x405368
mov word [ecx + 0xc], 0x2074
mov dword [ecx + 8], 0x65736666
mov dword [ecx + 4], 0x6f203a72
mov dword [ecx], 0x6f727265
add dword [eax + 0x10], 0xe
mov edx, dword [0x413c2c]
mov ecx, eax
push dword [edx + esi*4]
call fcn.0040dc58
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x14
ja 0x40625c
mov ecx, eax
push 0x15
push str._is_outside_the_file_n
call fcn.0040dc4c
jmp 0x405368
movsd xmm0, qword [0x40f367]
movsd qword [ecx + 0xd], xmm0
movups xmm0, xmmword [str._is_outside_the_file_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x15
jmp 0x405368
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x15
ja 0x406350
mov ecx, eax
push 0x16
push str.error:_invalid_length
call fcn.0040dc4c
jmp 0x40636b
mov dword [esp + 0x3c], edi
lea ebx, [esp + 0x168]
mov ecx, ebx
push eax
call fcn.0040a590
cmp byte [0x413dc4], 0
movzx eax, byte [0x413aac]
je 0x4062e9
test al, al
jne 0x4062f1
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xbc]
push dword [esp + 0x48]
push esi
call fcn.00409250
add esp, 8
jmp 0x4067e4
test al, al
je 0x40640b
lea ecx, [esp + 0x3c]
mov edx, dword [esp + 0xc]
push dword [esp + 0x24]
push dword [esp + 8]
call fcn.00408e10
add esp, 8
mov ebx, eax
jmp 0x4067e6
movups xmm0, xmmword [0x40f2a8]
movups xmmword [ecx + 0x1c], xmm0
movups xmm0, xmmword [0x40f29c]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_invalid__start_line_:_end_line__pair_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x2c
jmp 0x405368
mov al, 1
mov byte [esp + 0x934], al
test bl, 1
jne 0x405bc0
jmp 0x405bd1
movsd xmm0, qword [0x40f37e]
movsd qword [ecx + 0xe], xmm0
movups xmm0, xmmword [str.error:_invalid_length]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x16
mov esi, dword [esp + 0x14]
mov edx, dword [0x413b9c]
mov ecx, eax
push dword [edx + esi*4]
call fcn.0040dc58
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x12
ja 0x40639c
mov ecx, eax
push 0x13
push str.__offset__length__
call fcn.0040dc4c
jmp 0x4063b1
movups xmm0, xmmword [str.__offset__length__]
movups xmmword [ecx], xmm0
mov dword [ecx + 0xf], 0x28206874
add dword [eax + 0x10], 0x13
mov ecx, dword [0x413c2c]
mov edx, dword [0x413b9c]
mov edx, dword [edx + esi*4]
add edx, dword [ecx + esi*4]
mov ecx, eax
push edx
call fcn.0040dc58
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x16
ja 0x4063eb
mov ecx, eax
push 0x17
push str.__is_outside_the_file._n
call fcn.0040dc4c
jmp 0x405368
movsd xmm0, qword [0x40f3aa]
movsd qword [ecx + 0xf], xmm0
movups xmm0, xmmword [str.__is_outside_the_file._n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x17
jmp 0x405368
push 0x1c
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
push 1
call fcn.0040dcf4
lock inc dword [esi + 4]
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x170], 0
lock inc dword [esi + 4]
mov dword [esp + 0x14], esi
mov dword [esp + 0xa4], esi
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x5e8]
push eax
push ebx
call fcn.0040db7a
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x40647f
lock dec dword [ecx + 4]
jne 0x40647f
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x168], 1
je 0x406498
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x10], eax
push pe_nt_image_headers32
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
call fcn.004098a0
inc dword [esi]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb0], 0x40f4c8
push 8
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov ecx, eax
call fcn.0040db8c
mov dword [esp + 0xcc], edi
inc dword [edi]
mov dword [esp + 0xc8], esi
inc dword [esi]
lea edi, [esp + 0xc8]
lea esi, [esp + 0xcc]
mov ecx, ebx
push 0
lea eax, [esp + 0xb4]
push eax
push edi
push esi
call fcn.0040dbb0
mov ecx, edi
call fcn.00409910
mov ecx, esi
call fcn.00409930
lea edi, [esp + 0x468]
mov ecx, edi
push 0
lea esi, [esp + 0x5ec]
push esi
push ebx
call fcn.0040db9e
mov eax, dword [esp + 0xc]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xd8], eax
lea ecx, [esp + 0x158]
push dword [esp + 0x24]
call fcn.0040dc70
sub esp, 0x1c
movups xmm0, xmmword [esp + 0x174]
movups xmmword [esp + 8], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov ecx, edi
mov edx, esi
call fcn.00409950
add esp, 0x1c
mov ebx, eax
lea esi, [esp + 0x9e0]
mov ecx, esi
call fcn.0040db86
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x78], eax
mov ecx, esi
call fcn.00409ac0
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0040dbf8
add esp, 8
cmp byte [0x413b24], 0
je 0x4066be
lea ecx, [esp + 0x70]
call fcn.0040dc0a
test al, al
mov edi, dword [esp + 0x10]
je 0x40677e
mov dword [esp + 4], 0
jmp 0x406784
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x26
ja 0x40666a
mov ecx, eax
push 0x27
push str.error:_start_line_should_be_at_least_1_n
call fcn.0040dc4c
jmp 0x405368
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2c
ja 0x406695
mov ecx, eax
push 0x2d
push str.error:_start_line_should_not_exceed_end_line_n
call fcn.0040dc4c
jmp 0x405368
movsd xmm0, qword [0x40f2d8]
movsd qword [ecx + 0x1f], xmm0
movups xmm0, xmmword [0x40f2c9]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_start_line_should_be_at_least_1_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x27
jmp 0x405368
movups xmm0, xmmword [0x40f2fe]
movups xmmword [ecx + 0x1d], xmm0
movups xmm0, xmmword [0x40f2f1]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:_start_line_should_not_exceed_end_line_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x2d
jmp 0x405368
cmp word [0x4139ec], 0
mov edi, dword [esp + 0x10]
je 0x40675e
call fcn.0040dd00
mov ecx, eax
push str.__Cursor_:
call fcn.00404740
mov esi, eax
lea ecx, [esp + 0xbc]
push dword [esp + 0x48]
call fcn.0040dc40
mov ecx, esi
push eax
call fcn.0040dc58
mov ecx, eax
push str.___IncompleteFormat_:
call fcn.00404740
cmp byte [esp + 0x84], 0
mov ecx, str.true
mov edx, str.false
cmove edx, ecx
mov ecx, eax
push edx
call fcn.00404740
cmp byte [esp + 0x84], 0
jne 0x40674d
call fcn.0040dd00
mov ecx, eax
push str.___Line_:
call fcn.00404740
mov ecx, eax
push dword [esp + 0x88]
call fcn.0040dc58
call fcn.0040dd00
mov ecx, eax
push 0x40f24c
call fcn.00404740
mov dword [esp + 0x154], ebx
lea ecx, [esp + 0x70]
push ebx
call fcn.0040dc04
mov esi, eax
call fcn.0040dd00
mov ecx, esi
push eax
call fcn.0040dc1c
mov al, 1
mov dword [esp + 4], eax
lea ecx, [esp + 0x78]
push dword [esp + 0x7c]
call fcn.0040b5f0
lea ecx, [esp + 0x468]
call fcn.0040dba4
lea ecx, [esp + 0x168]
call fcn.0040dbb6
lea ecx, [esp + 0xb0]
call fcn.0040dbbc
lea ecx, [esp + 0xd0]
call fcn.00409910
lea ecx, [esp + 0x5e8]
call fcn.0040db80
lock dec dword [edi]
jne 0x4067db
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 1
cmp byte [esp + 4], 0
je 0x4067e6
xor ebx, ebx
lea ecx, [esp + 0xbc]
push dword [esp + 0xc0]
call fcn.0040a590
lea ecx, [esp + 0x4c]
call fcn.00409ef0
lea ecx, [esp + 0x3c]
push dword [esp + 0x40]
call fcn.0040a590
test byte [esp + 0x9dc], 1
jne 0x405b0f
lea ecx, [esp + 0x7c0]
call fcn.00407c70
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40683e
mov dword [esp + 0x1c], eax
push eax
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x94], 1
jne 0x40686c
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x8c], 0
test ecx, ecx
je 0x40686c
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x18]
call fcn.0040a1a0
call fcn.00406f70
int3