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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc50
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, 1
jne 0x40551b
cmp byte [ecx], 0x2d
sete bl
cmp byte [0x415f7c], 0
jne 0x405526
jmp 0x405597
xor ebx, ebx
cmp byte [0x415f7c], 0
je 0x405597
mov word [esp + 0x654], 0x105
mov dword [esp + 0x644], ecx
mov dword [esp + 0x648], eax
mov word [esp + 0xd0], 0
sub esp, 0x14
lea eax, [esp + 0x658]
mov dword [esp + 4], eax
lea eax, [esp + 0x9c]
mov dword [esp], eax
mov word [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
call fcn.0040e8fa
add esp, 0x14
test byte [esp + 0x90], 1
jne 0x40561f
call fcn.0040ea92
jmp 0x40567d
movzx edx, byte [0x415b24]
test dl, dl
sete dh
mov esi, ebx
xor bl, 1
or bl, dh
jne 0x4055d7
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2d
ja 0x405aa3
mov ecx, eax
push 0x2e
push str.error:_cannot_use__i_when_reading_from_stdin._n
call fcn.0040e8e2
xor ebx, ebx
jmp 0x407369
test dl, dl
mov ebx, esi
je 0x405526
mov word [esp + 0x178], 0x105
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], eax
lea eax, [esp + 0x168]
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.0040e900
add esp, 8
test byte [esp + 0x90], 1
je 0x40558d
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x648], ecx
mov dword [esp + 0x644], eax
test eax, eax
je 0x40567d
call fcn.0040e9c0
mov esi, eax
lea eax, [esp + 0x644]
lea ecx, [esp + 0x168]
push eax
call fcn.0040ea32
movzx eax, byte [esp + 0x168]
test al, 1
je 0x405959
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
jmp 0x405962
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x88], 0
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx + 8]
sub ecx, eax
je 0x4056fe
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], ecx
sub esp, 8
movsd xmm0, qword [esp + 0x154]
movsd qword [esp], xmm0
call fcn.0040e858
add esp, 8
test eax, eax
mov dword [esp + 0x20], ebx
je 0x405705
mov esi, eax
call fcn.0040e9c0
mov edi, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, 0x31
ja 0x4059ab
mov ecx, edi
push 0x32
push str.error:_encoding_with_unsupported_byte_order_mark__
call fcn.0040e8e2
mov edi, eax
mov ebx, dword [eax + 0x10]
jmp 0x4059da
xor ebx, ebx
jmp 0x40733b
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x1c
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
push 1
call fcn.0040e9ba
lock inc dword [esi + 4]
xorps xmm0, xmm0
movsd qword [esp + 0x168], xmm0
mov dword [esp + 0x170], 0
lock inc dword [esi + 4]
mov dword [esp + 4], esi
mov dword [esp + 0xb4], esi
lea edx, [esp + 0xb4]
lea eax, [esp + 0x168]
lea edi, [esp + 0x644]
mov ecx, edi
push edx
push eax
call fcn.0040e80a
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x405790
lock dec dword [ecx + 4]
jne 0x405790
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x168], 1
je 0x4057a9
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.0040e81c
mov dword [esp + 0xa8], esi
inc dword [esi]
push 0x84
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
movups xmmword [eax + 0x70], xmm0
mov dword [eax + 0x80], 0
mov ecx, 0xff800000
and ecx, dword [eax + 4]
or ecx, 0x6f0
mov dword [eax + 4], ecx
movaps xmm0, xmmword [0x40f080]
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 + 0xa8]
lea ebx, [esp + 0x168]
mov ecx, ebx
push 1
push 0
push edx
push eax
call fcn.0040e840
mov esi, dword [esp + 0x64]
test esi, esi
je 0x405878
dec dword [esi]
jne 0x405878
mov ecx, esi
call fcn.0040b5a0
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
mov esi, dword [esp + 0xa8]
test esi, esi
je 0x405897
dec dword [esi]
jne 0x405897
mov ecx, esi
call fcn.0040e822
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
lea esi, [esp + 0x880]
mov ecx, esi
push 0
push edi
push ebx
call fcn.0040e82e
mov dword [esp + 0x40], str._irrelevant_
mov dword [esp + 0x44], 0xc
lea ecx, [esp + 0xa74]
push dword [esp + 0x24]
call fcn.0040e906
sub esp, 0x1c
movups xmm0, xmmword [esp + 0xa90]
movups xmmword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov ecx, esi
mov edx, edi
call fcn.0040a380
add esp, 0x1c
mov dword [esp + 0x1c], eax
mov esi, dword [0x4151ec]
mov edx, dword [0x4151f0]
mov eax, dword [0x415c2c]
mov ecx, dword [0x415c30]
cmp esi, edx
je 0x405b38
cmp eax, ecx
jne 0x405930
mov eax, dword [0x415b9c]
cmp eax, dword [0x415ba0]
je 0x4062bd
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2d
ja 0x405f80
mov ecx, eax
push 0x2e
push str.error:_cannot_use__lines_with__offset__length_n
call fcn.0040e8e2
jmp 0x405fa4
shr eax, 1
lea edx, [esp + 0x169]
mov ecx, esi
push eax
push edx
call fcn.0040e8e2
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x405a82
mov byte [ecx], 0xa
inc dword [eax + 0x10]
test byte [esp + 0x168], 1
je 0x405996
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov bl, 1
test byte [esp + 0x90], 1
je 0x40734e
jmp 0x407369
movups xmm0, xmmword [0x41019b]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x41018b]
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 0x405a00
mov ecx, edi
push esi
push edx
call fcn.0040e8e2
mov edi, eax
mov ebx, dword [eax + 0x10]
jmp 0x405a17
test esi, esi
je 0x405a17
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 0x405a3b
mov ecx, edi
push 0xa
push str.__detected
call fcn.0040e8e2
cmp byte [esp + 0x20], 0
je 0x405a5d
jmp 0x405f49
mov word [ebx + 8], 0x6465
mov dword [ebx + 4], 0x74636574
mov dword [ebx], 0x65642022
add dword [edi + 0x10], 0xa
cmp byte [esp + 0x20], 0
jne 0x405f49
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 9
ja 0x405ace
mov ecx, eax
push 0xa
push str._in_file_
call fcn.0040e8e2
mov ecx, dword [eax + 0x10]
jmp 0x405aea
mov ecx, eax
push 1
push 0x40fe93
call fcn.0040e8e2
test byte [esp + 0x168], 1
jne 0x405987
jmp 0x405996
movups xmm0, xmmword [0x41016a]
movups xmmword [ecx + 0x1e], xmm0
movups xmm0, xmmword [0x41015c]
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 0x407369
mov word [ecx + 8], 0x2720
mov dword [ecx + 4], 0x656c6966
mov dword [ecx], 0x206e6920
mov ecx, dword [eax + 0x10]
add ecx, 0xa
mov dword [eax + 0x10], ecx
lea esi, [ebp + 8]
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov edi, dword [eax + 0xc]
sub edi, ecx
cmp edi, esi
jae 0x405b09
mov ecx, eax
push esi
push edx
call fcn.0040e8e2
mov ecx, dword [eax + 0x10]
jmp 0x405b24
test esi, esi
je 0x405b24
push esi
push edx
push ecx
mov edi, eax
call sub.msvcrt.dll_memcpy
mov eax, edi
add esp, 0xc
add esi, dword [edi + 0x10]
mov dword [edi + 0x10], esi
mov ecx, esi
cmp dword [eax + 0xc], ecx
je 0x405f3b
mov byte [ecx], 0x27
inc dword [eax + 0x10]
jmp 0x405f49
cmp eax, ecx
jne 0x405b64
mov dword [esp + 0x468], 0
lea eax, [esp + 0x468]
mov ecx, 0x415c2c
push eax
call fcn.0040a970
mov ecx, dword [0x415c30]
mov eax, dword [0x415c2c]
mov ebx, ecx
sub ebx, eax
mov edx, dword [0x415ba0]
mov esi, dword [0x415b9c]
mov edi, edx
sub edi, esi
mov dword [esp + 0x3c], ebx
cmp ebx, edi
je 0x405b93
cmp dword [esp + 0x3c], 4
jne 0x406269
cmp esi, edx
jne 0x406269
mov dword [esp], 0
cmp ecx, eax
je 0x405fa9
sar dword [esp + 0x3c], 2
mov ecx, 0xfffffffe
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov edx, 1
shl edx, cl
mov dword [esp + 0x34], edx
inc eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
shr ecx, 5
mov dword [esp + 0x98], ecx
xor edi, edi
jmp 0x405bef
mov dword [ebx + 4], edx
mov dword [ebx], esi
add ebx, 8
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 8]
inc edi
cmp edi, dword [esp + 0x3c]
je 0x4066b6
mov eax, dword [0x415c2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 8]
sub ecx, dword [edx + 4]
cmp dword [eax + edi*4], ecx
jae 0x40668d
mov byte [esp + 0x468], 0
cmp dword [esp + 0x30], 2
jae 0x405c1a
xor esi, esi
jmp 0x405c6f
cmp dword [esp + 0x1c], 0
js 0x405c38
mov eax, dword [esp + 0x8e8]
test eax, eax
je 0x405c16
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
jmp 0x405c63
mov eax, dword [esp + 0x91c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x98]
test dword [eax + edx*4], ecx
je 0x405d30
lea ecx, [esp + 0x8f4]
push dword [esp + 0x28]
call fcn.0040acc0
mov esi, dword [eax]
test esi, esi
mov eax, 0
cmovle esi, eax
mov eax, dword [0x415c2c]
mov eax, dword [eax + edi*4]
add esi, eax
mov edx, dword [0x415ba0]
mov ecx, dword [0x415b9c]
sub edx, ecx
sar edx, 2
cmp edi, edx
mov dword [esp + 8], edi
jae 0x405cb0
mov ebx, dword [ecx + edi*4]
add eax, ebx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 8]
sub ecx, dword [edx + 4]
cmp eax, ecx
ja 0x406d85
add ebx, esi
jmp 0x405d7f
mov byte [esp + 0x468], 0
cmp dword [esp + 0x30], 2
jb 0x405d7d
cmp dword [esp + 0x1c], 0
js 0x405ce5
mov eax, dword [esp + 0x8e8]
test eax, eax
je 0x405d7d
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
jmp 0x405d0c
mov eax, dword [esp + 0x91c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x98]
test dword [eax + edx*4], ecx
je 0x405d5b
lea ecx, [esp + 0x8f4]
push dword [esp + 0x28]
call fcn.0040acc0
mov edi, dword [eax]
test edi, edi
js 0x405d7d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x468], eax
lea ecx, [esp + 0x880]
push eax
call fcn.0040e8b8
mov ebx, eax
add ebx, edi
jmp 0x405d7f
lea ecx, [esp + 0x880]
lea eax, [esp + 0x468]
push eax
push dword [esp + 0x2c]
call fcn.0040e8c4
cmp byte [esp + 0x468], 0
jne 0x405c16
jmp 0x405c63
lea ecx, [esp + 0x880]
lea eax, [esp + 0x468]
push eax
push dword [esp + 0x2c]
call fcn.0040e8c4
cmp byte [esp + 0x468], 0
je 0x405d0c
xor ebx, ebx
mov dword [esp + 0x468], esi
lea edi, [esp + 0x880]
mov ecx, edi
push esi
call fcn.0040ab00
mov esi, edx
mov dword [esp + 0x468], ebx
mov ecx, edi
push ebx
call fcn.0040ab00
sub edx, esi
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp ebx, eax
jb 0x405bd4
mov dword [esp], esi
mov ecx, dword [esp + 0xc]
mov esi, ebx
sub esi, ecx
mov dword [esp + 0x4c], esi
sar esi, 3
mov edi, esi
mov dword [esp + 0x2c], esi
lea edi, [esi + 1]
cmp edi, 0x20000000
jae 0x407373
sub eax, ecx
mov esi, eax
sar esi, 2
cmp esi, edi
cmovbe esi, edi
cmp eax, 0x7ffffff8
mov eax, 0x1fffffff
cmovae esi, eax
test esi, esi
mov dword [esp + 0x18], esi
je 0x405e2c
cmp esi, 0x20000000
jae 0x40737c
mov edi, edx
lea eax, [esi*8]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov edx, edi
mov edi, eax
jmp 0x405e2e
xor edi, edi
mov eax, dword [esp + 0x2c]
mov dword [edi + eax*8 + 4], edx
lea edx, [edi + eax*8]
mov esi, dword [esp]
mov dword [edi + eax*8], esi
mov esi, ebx
sub esi, ecx
je 0x405e5c
add esi, 0xfffffff8
cmp esi, 0x18
mov dword [esp + 0x38], edi
jae 0x405e65
mov edi, ebx
mov eax, dword [esp + 0x18]
jmp 0x405ef0
mov eax, dword [esp + 0x18]
jmp 0x405f0c
mov eax, dword [esp + 0x4c]
add eax, edi
mov edi, ebx
sub edi, eax
cmp edi, 0x20
mov eax, dword [esp + 0x18]
jae 0x405e7c
mov edi, ebx
jmp 0x405ef0
shr esi, 3
inc esi
mov dword [esp + 0xc0], esi
and esi, 0xfffffffc
mov dword [esp + 0x94], esi
lea esi, [esi*8]
sub edx, esi
mov edi, ebx
sub edi, esi
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
add esi, eax
add esi, 0xfffffff0
mov eax, dword [esp + 0x94]
neg eax
mov dword [esp], eax
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [ebx + eax*8 - 0x20]
movups xmm1, xmmword [ebx + eax*8 - 0x10]
movups xmmword [esi + eax*8], xmm1
movups xmmword [esi + eax*8 - 0x10], xmm0
add eax, 0xfffffffc
cmp dword [esp], eax
jne 0x405ec0
mov eax, dword [esp + 0x94]
cmp dword [esp + 0xc0], eax
mov eax, dword [esp + 0x18]
je 0x405f04
nop
movsd xmm0, qword [edi - 8]
add edi, 0xfffffff8
movsd qword [edx - 8], xmm0
add edx, 0xfffffff8
cmp edi, ecx
jne 0x405ef0
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x38]
lea eax, [edi + eax*8]
mov esi, dword [esp + 0x2c]
lea ebx, [edi + esi*8]
add ebx, 8
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x405bdc
push ecx
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x405bdc
mov ecx, eax
push 1
push 0x4101c4
call fcn.0040e8e2
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 1
ja 0x405f70
mov ecx, eax
push 2
push 0x4101c6
call fcn.0040e8e2
mov bl, 1
jmp 0x40733b
mov word [ecx], 0xa2e
add dword [eax + 0x10], 2
mov bl, 1
jmp 0x40733b
movups xmm0, xmmword [0x410292]
movups xmmword [ecx + 0x1e], xmm0
movups xmm0, xmmword [0x410284]
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], eax
mov ebx, dword [esp + 4]
mov esi, ebx
add esi, 4
lea ecx, [esp + 0x880]
call fcn.0040e834
lea edi, [esp + 0x168]
mov ecx, edi
call fcn.0040e846
lea ecx, [esp + 0x644]
call fcn.0040e810
lock dec dword [esi]
jne 0x405fe4
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov bl, 1
cmp byte [esp], 0
jne 0x407326
cmp byte [esp + 0x20], 0
je 0x406040
movzx edx, byte [0x415714]
test dl, 1
je 0x406255
mov esi, dword [0x41571c]
mov edx, dword [0x415718]
test edx, edx
jne 0x40604c
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x26
ja 0x406292
mov ecx, eax
push 0x27
push str.error:_empty_filenames_are_not_allowed_n
call fcn.0040e8e2
jmp 0x407326
lea eax, [ebp + 8]
mov esi, dword [eax]
mov edx, dword [eax + 4]
test edx, edx
je 0x406017
movzx eax, byte [0x4159ac]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x4159ad
cmovne eax, dword [0x4159b4]
cmovne ecx, dword [0x4159b0]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
mov dword [esp + 0x13c], esi
mov dword [esp], edx
mov dword [esp + 0x140], edx
movzx eax, byte [0x41568c]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x41568d
cmovne eax, dword [0x415694]
mov dword [esp + 0x134], eax
cmovne ecx, dword [0x415690]
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 [0x415524]
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 ebx, [esp + 0x670]
mov dword [esp], ebx
mov dword [esp + 0x24], 0
call fcn.0040e870
add esp, 0x2c
test byte [esp + 0x87c], 1
jne 0x4061a7
mov dword [esp + 0x20], esi
movzx eax, byte [0x415814]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, 0x415815
cmovne eax, dword [0x41581c]
mov dword [esp + 0x64], eax
cmovne ecx, dword [0x415818]
mov dword [esp + 0x68], ecx
lea edi, [esp + 0x168]
mov ecx, edi
lea eax, [esp + 0x64]
push eax
call fcn.0040ea26
movzx ecx, byte [esp + 0x168]
mov eax, dword [esp + 0x170]
test cl, 1
je 0x406652
mov esi, dword [esp + 0x16c]
mov edx, eax
jmp 0x40665d
call fcn.0040e9c0
mov esi, eax
xor eax, eax
test byte [esp + 0x87c], 1
je 0x4061cc
mov eax, dword [esp + 0x644]
mov dword [esp + 0x644], 0
mov dword [esp + 0xa4], eax
lea eax, [esp + 0xa4]
push eax
push edi
call fcn.0040e9d8
add esp, 8
mov ecx, esi
push edi
call fcn.00407390
mov ecx, eax
push 0x40fe93
call fcn.00405460
test byte [esp + 0x168], 1
je 0x406211
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x406221
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 1
test byte [esp + 0x87c], 1
je 0x40731a
mov ecx, dword [esp + 0x644]
mov dword [esp + 0x644], 0
test ecx, ecx
je 0x407326
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x407326
shr edx, 1
mov esi, 0x415715
test edx, edx
jne 0x40604c
jmp 0x406017
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x3a
ja 0x406cba
mov ecx, eax
push 0x3b
push str.error:_number_of__offset_and__length_arguments_must_match._n
call fcn.0040e8e2
jmp 0x405fa4
movsd xmm0, qword [0x4101e8]
movsd qword [ecx + 0x1f], xmm0
movups xmm0, xmmword [0x4101d9]
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 0x407326
sub edx, esi
sar edx, 2
imul eax, edx, 0xaaaaaaab
cmp eax, 1
adc eax, 0
mov dword [esp + 0x3c], eax
xor esi, esi
jmp 0x4062f5
mov dword [edi + 4], edx
mov dword [edi], esi
add edi, 8
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], edi
inc esi
cmp esi, dword [esp + 0x3c]
je 0x405fad
mov ecx, dword [0x4151ec]
mov dword [esp + 0x30], esi
lea edx, [esi + esi*2]
movzx eax, byte [ecx + edx*4]
test al, 1
je 0x406314
mov esi, dword [ecx + edx*4 + 8]
mov eax, dword [ecx + edx*4 + 4]
jmp 0x40631a
shr eax, 1
lea esi, [ecx + edx*4]
inc esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], eax
mov byte [esp + 0x6c], 0x3a
mov eax, 1
mov dword [esp + 0x46c], eax
lea eax, [esp + 0x6c]
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 + 0x60]
call fcn.0040ea20
cmp eax, 0xffffffff
je 0x406381
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
cmp eax, ebx
mov edx, ebx
cmovb edx, eax
inc eax
cmp ebx, eax
cmovb eax, ebx
lea edi, [ecx + eax]
sub ebx, eax
jmp 0x40638d
xor edi, edi
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
xor ebx, ebx
mov dword [esp + 0x70], edx
mov dword [esp + 0x6c], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp], xmm0
lea eax, [esp + 0x478]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040e924
add esp, 0x10
test al, al
jne 0x406cee
cmp dword [esp + 0x46c], 0
jne 0x406cee
mov esi, dword [esp + 0x468]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], edi
sub esp, 0x10
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp], xmm0
lea eax, [esp + 0x478]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
call fcn.0040e924
add esp, 0x10
test al, al
jne 0x406cee
cmp dword [esp + 0x46c], 0
jne 0x406cee
test esi, esi
je 0x407121
mov edi, dword [esp + 0x468]
cmp esi, edi
ja 0x407146
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x80], ebx
lea ecx, [esp + 0x880]
push 1
push esi
push ebx
call fcn.0040e8ca
mov esi, eax
mov dword [esp + 0x50], ebx
lea ecx, [esp + 0x880]
push 0xffffffffffffffff
push edi
push ebx
call fcn.0040e8ca
mov ebx, eax
test esi, esi
sete al
test ebx, ebx
sete cl
or cl, al
mov dword [esp], ecx
jne 0x405fa4
mov dword [esp + 0x468], esi
lea edi, [esp + 0x880]
mov ecx, edi
push esi
call fcn.0040ab00
mov esi, edx
mov dword [esp + 0x468], ebx
mov ecx, edi
push ebx
call fcn.0040ab00
sub edx, esi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp edi, eax
jb 0x4062d6
mov dword [esp + 0x18], edx
mov dword [esp + 8], esi
mov ecx, dword [esp + 0xc]
mov ebx, edi
sub ebx, ecx
mov esi, ebx
sar esi, 3
mov edx, esi
mov dword [esp + 0x2c], esi
lea edx, [esi + 1]
cmp edx, 0x20000000
jae 0x407373
sub eax, ecx
mov esi, eax
sar esi, 2
cmp esi, edx
cmovbe esi, edx
cmp eax, 0x7ffffff8
mov eax, 0x1fffffff
cmovae esi, eax
test esi, esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], ebx
je 0x40652f
cmp esi, 0x20000000
jae 0x40737c
lea eax, [esi*8]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x406531
xor eax, eax
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov dword [eax + ebx*8 + 4], edx
lea edx, [eax + ebx*8]
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x2c]
mov dword [eax + esi*8], ebx
mov ebx, eax
mov eax, edi
sub eax, ecx
je 0x406566
add eax, 0xfffffff8
cmp eax, 0x18
mov dword [esp + 0x18], ebx
jae 0x40656f
mov ebx, edi
jmp 0x4065f0
mov esi, dword [esp + 0x30]
jmp 0x406610
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
add eax, ebx
mov ebx, edi
sub ebx, eax
cmp ebx, 0x20
jae 0x406586
mov ebx, edi
jmp 0x4065f0
mov eax, dword [esp + 0x28]
shr eax, 3
inc eax
mov dword [esp + 0x28], eax
and eax, 0xfffffffc
mov dword [esp + 0x34], eax
lea ebx, [eax*8]
mov dword [esp + 8], ebx
sub edx, ebx
mov ebx, edi
sub ebx, dword [esp + 8]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
add esi, eax
add esi, 0xfffffff0
mov eax, dword [esp + 0x34]
neg eax
mov dword [esp + 8], eax
xor eax, eax
movups xmm0, xmmword [edi + eax*8 - 0x20]
movups xmm1, xmmword [edi + eax*8 - 0x10]
movups xmmword [esi + eax*8], xmm1
movups xmmword [esi + eax*8 - 0x10], xmm0
add eax, 0xfffffffc
cmp dword [esp + 8], eax
jne 0x4065c5
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x28], eax
je 0x406604
nop dword [eax + eax]
movsd xmm0, qword [ebx - 8]
add ebx, 0xfffffff8
movsd qword [edx - 8], xmm0
add edx, 0xfffffff8
cmp ebx, ecx
jne 0x4065f0
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
lea eax, [ebx + eax*8]
mov edi, dword [esp + 0x2c]
lea edi, [ebx + edi*8]
add edi, 8
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x40663a
push ecx
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ebx, dword [esp + 4]
mov dword [esp + 0x10], edi
inc esi
cmp esi, dword [esp + 0x3c]
jne 0x4062f5
jmp 0x405fad
mov esi, ecx
shr esi, 1
lea edx, [esp + 0x169]
cmp esi, 4
je 0x4066c2
cmp esi, 5
jne 0x4066ce
mov esi, 0x68676972
xor esi, dword [edx]
movzx edx, byte [edx + 4]
xor edx, 0x74
or edx, esi
jne 0x4066ce
mov dl, 2
mov esi, dword [esp + 0x20]
mov byte [esp + 0x7d4], dl
test cl, 1
jne 0x4066e6
jmp 0x4066f7
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0xd
ja 0x406d17
mov ecx, eax
push 0xe
push str.error:_offset
call fcn.0040e8e2
jmp 0x406d35
mov dword [esp], 0
jmp 0x405fa9
cmp dword [edx], 0x7466656c
je 0x406e42
movzx edx, byte [esp + 0x7d4]
mov esi, dword [esp + 0x20]
mov byte [esp + 0x7d4], dl
test cl, 1
je 0x4066f7
push eax
call sub.libc.dll_operator_delete_void_
add esp, 4
movzx edx, byte [esp + 0x7d4]
cmp dl, 2
je 0x406733
movzx eax, dl
cmp eax, 1
jne 0x4067e5
mov ecx, edi
push str.const
call fcn.00409770
lea ecx, [esp + 0x174]
push str.volatile
call fcn.00409770
lea ecx, [esp + 0x180]
push str.type
jmp 0x40675c
mov ecx, edi
push str.type
call fcn.00409770
lea ecx, [esp + 0x174]
push str.const
call fcn.00409770
lea ecx, [esp + 0x180]
push str.volatile
call fcn.00409770
lea ecx, [esp + 0x7d8]
lea eax, [esp + 0x18c]
push 3
push eax
push edi
call fcn.0040afe0
test byte [esp + 0x180], 1
jne 0x40679b
test byte [esp + 0x174], 1
jne 0x4067b4
test byte [esp + 0x168], 1
jne 0x4067d1
jmp 0x406913
push dword [esp + 0x188]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x174], 1
je 0x40678c
push dword [esp + 0x17c]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x168], 1
je 0x406913
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x406913
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.0040ea20
cmp eax, 0xffffffff
je 0x406913
mov byte [esp + 0x7d4], 3
lea esi, [esp + 0x174]
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 6
mov dword [esp + 0x124], 0x410205
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.0040ea2c
mov eax, dword [esp + 0x168]
mov edx, dword [esp + 0x16c]
lea edi, [eax + edx*8]
mov dword [esp + 0x880], 0
mov dword [esp + 0x884], 0
mov dword [esp + 0x888], 0
lea ebx, [esp + 0x880]
mov ecx, ebx
push edx
push edi
push eax
call fcn.0040b220
lea ecx, [esp + 0x7d8]
push ebx
call fcn.004097e0
mov ecx, ebx
call fcn.00407ee0
mov eax, dword [esp + 0x168]
cmp eax, esi
je 0x406901
push eax
call sub.msvcrt.dll_free
add esp, 4
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x644]
lea edi, [esp + 0x168]
cmp word [0x415464], 0
je 0x40692b
movzx eax, byte [0x4154ac]
mov byte [esp + 0x7fd], al
mov eax, dword [0x415a34]
mov dword [esp + 0x50], 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 + 0xc]
mov ecx, dword [esp + 0x10]
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]
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 + 0x74]
mov dword [esp + 0x20], eax
mov dword [esp + 4], ebx
lea eax, [esp + 0x64]
mov dword [esp], eax
call fcn.0040e85e
add esp, 0x24
cmp byte [esp + 0x749], 5
jne 0x406a83
cmp byte [esp + 0x6da], 0
jne 0x406a83
mov dword [esp + 0x104], esi
mov eax, dword [esp]
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.0040e87c
lea ecx, [esp + 0x880]
push edi
lea eax, [esp + 0x44]
push eax
call fcn.0040e882
mov ecx, edi
call fcn.00409870
cmp dword [esp + 0x880], 0
je 0x406a83
call fcn.0040e9c0
mov ecx, eax
push str.Bad_Json_variable_insertion_n
call fcn.00405460
mov ecx, dword [esp + 0x880]
test ecx, ecx
je 0x406a83
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
lea esi, [esp + 0x50]
mov dword [esp + 0xc], esi
lea eax, [esp + 0x64]
mov dword [esp], eax
call fcn.0040e888
add esp, 0x10
test byte [esp + 0x60], 1
jne 0x406c42
lea eax, [esp + 0xc]
push eax
push esi
push edi
call fcn.0040e894
add esp, 0xc
mov eax, dword [esp + 0xc]
test eax, eax
je 0x406af5
mov dword [esp + 0x10], 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 + 0xc], ecx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x170]
mov dword [esp + 0x14], edx
movzx edx, byte [esp + 0x54]
mov esi, edx
shr esi, 1
test dl, 1
lea edx, [esp + 0x55]
cmovne edx, dword [esp + 0x5c]
mov dword [esp + 0xec], edx
cmovne esi, dword [esp + 0x58]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xe4], ecx
sub eax, ecx
sar eax, 3
mov dword [esp + 0xe8], eax
mov byte [esp + 0x80], 1
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xdc], eax
mov eax, dword [esp]
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 + 0xa4]
mov dword [esp + 0x20], esi
mov dword [esp + 4], ebx
lea edi, [esp + 0xd8]
mov dword [esp], edi
call fcn.0040e876
add esp, 0x24
lea ecx, [esp + 0x168]
push edi
lea ebx, [esp + 0x44]
push ebx
call fcn.0040e8dc
lea edi, [esp + 0x44]
mov ecx, ebx
push dword [esp + 0x44]
call fcn.0040b2f0
mov ecx, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x406dae
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 0x406db2
call fcn.0040e9c0
mov esi, eax
xor eax, eax
test byte [esp + 0x60], 1
je 0x406c5e
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
push edi
call fcn.0040e9d8
add esp, 8
mov ecx, esi
push edi
call fcn.00407390
mov ecx, eax
push 0x40fe93
call fcn.00405460
test byte [esp + 0x168], 1
je 0x406ca3
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x406cb3
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 1
jmp 0x4072f6
movups xmm0, xmmword [0x410351]
movups xmmword [ecx + 0x2b], xmm0
movups xmm0, xmmword [0x410346]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x410336]
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 0x405fa4
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2b
ja 0x406e19
mov ecx, eax
push 0x2c
push str.error:_invalid__start_line_:_end_line__pair_n
call fcn.0040e8e2
jmp 0x405fa4
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 [0x415c2c]
mov ecx, eax
push dword [edx + edi*4]
call fcn.0040e8ee
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x14
ja 0x406d65
mov ecx, eax
push 0x15
push str._is_outside_the_file_n
call fcn.0040e8e2
jmp 0x405fa4
movsd xmm0, qword [0x41037e]
movsd qword [ecx + 0xd], xmm0
movups xmm0, xmmword [str._is_outside_the_file_n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x15
jmp 0x405fa4
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x15
ja 0x406e5d
mov ecx, eax
push 0x16
push str.error:_invalid_length
call fcn.0040e8e2
jmp 0x406e78
mov dword [esp + 0x40], edi
lea edi, [esp + 0x168]
mov ecx, edi
push eax
call fcn.0040b2f0
cmp byte [0x415f7c], 0
movzx eax, byte [0x415aac]
je 0x406df2
test al, al
jne 0x406dfa
lea ecx, [esp + 0x40]
lea edx, [esp + 0xb4]
push dword [esp + 0x50]
push esi
call fcn.00409c90
add esp, 8
jmp 0x4072e1
test al, al
je 0x406f18
lea ecx, [esp + 0x40]
mov edx, dword [esp + 0x20]
push dword [esp + 0x24]
push dword [esp + 4]
call fcn.004098a0
add esp, 8
mov ebx, eax
jmp 0x4072e3
movups xmm0, xmmword [0x4102bf]
movups xmmword [ecx + 0x1c], xmm0
movups xmm0, xmmword [0x4102b3]
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 0x405fa4
mov dl, 1
mov esi, dword [esp + 0x20]
mov byte [esp + 0x7d4], dl
test cl, 1
jne 0x4066e6
jmp 0x4066f7
movsd xmm0, qword [0x410395]
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 + 8]
mov edx, dword [0x415b9c]
mov ecx, eax
push dword [edx + esi*4]
call fcn.0040e8ee
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x12
ja 0x406ea9
mov ecx, eax
push 0x13
push str.__offset__length__
call fcn.0040e8e2
jmp 0x406ebe
movups xmm0, xmmword [str.__offset__length__]
movups xmmword [ecx], xmm0
mov dword [ecx + 0xf], 0x28206874
add dword [eax + 0x10], 0x13
mov ecx, dword [0x415c2c]
mov edx, dword [0x415b9c]
mov edx, dword [edx + esi*4]
add edx, dword [ecx + esi*4]
mov ecx, eax
push edx
call fcn.0040e8ee
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x16
ja 0x406ef8
mov ecx, eax
push 0x17
push str.__is_outside_the_file._n
call fcn.0040e8e2
jmp 0x405fa4
movsd xmm0, qword [0x4103c1]
movsd qword [ecx + 0xf], xmm0
movups xmm0, xmmword [str.__is_outside_the_file._n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x17
jmp 0x405fa4
push 0x1c
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
push 1
call fcn.0040e9ba
lock inc dword [esi + 4]
xorps xmm0, xmm0
movsd qword [esp + 0x168], xmm0
mov dword [esp + 0x170], 0
lock inc dword [esi + 4]
mov dword [esp + 8], esi
mov dword [esp + 0x9c], esi
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xa74]
push eax
push edi
call fcn.0040e80a
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x406f82
lock dec dword [ecx + 4]
jne 0x406f82
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x168], 1
je 0x406f9b
push dword [esp + 0x170]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 8]
add eax, 4
mov dword [esp + 0x1c], eax
push 0x84
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
call fcn.0040a2d0
inc dword [esi]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xa8], 0x4104dc
push 8
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ebx, eax
mov ecx, eax
call fcn.0040e81c
mov dword [esp + 0xc8], ebx
inc dword [ebx]
mov dword [esp + 0xc4], esi
inc dword [esi]
lea ebx, [esp + 0xc4]
lea esi, [esp + 0xc8]
mov ecx, edi
push 0
lea eax, [esp + 0xac]
push eax
push ebx
push esi
call fcn.0040e840
mov ecx, ebx
call fcn.0040a340
mov ecx, esi
call fcn.0040a360
lea ebx, [esp + 0x468]
mov ecx, ebx
push 0
lea esi, [esp + 0xa78]
push esi
push edi
call fcn.0040e82e
mov eax, dword [esp + 0x20]
mov dword [esp + 0xd4], eax
mov eax, dword [esp]
mov dword [esp + 0xd8], eax
lea ecx, [esp + 0x158]
push dword [esp + 0x24]
call fcn.0040e906
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 + 0x24]
mov dword [esp + 0x18], eax
mov ecx, ebx
mov edx, esi
call fcn.0040a380
add esp, 0x1c
mov edi, eax
lea esi, [esp + 0x880]
mov ecx, esi
call fcn.0040e816
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], esi
lea ebx, [esp + 0x74]
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x74], eax
mov ecx, esi
call fcn.0040a4f0
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0040e88e
add esp, 8
cmp byte [0x415b24], 0
je 0x4071bf
lea ecx, [esp + 0x6c]
call fcn.0040e8a0
test al, al
je 0x40727b
mov dword [esp], 0
jmp 0x407280
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x26
ja 0x40716b
mov ecx, eax
push 0x27
push str.error:_start_line_should_be_at_least_1_n
call fcn.0040e8e2
jmp 0x405fa4
call fcn.0040e9c0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x2c
ja 0x407196
mov ecx, eax
push 0x2d
push str.error:_start_line_should_not_exceed_end_line_n
call fcn.0040e8e2
jmp 0x405fa4
movsd xmm0, qword [0x4102ef]
movsd qword [ecx + 0x1f], xmm0
movups xmm0, xmmword [0x4102e0]
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 0x405fa4
movups xmm0, xmmword [0x410315]
movups xmmword [ecx + 0x1d], xmm0
movups xmm0, xmmword [0x410308]
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 0x405fa4
cmp word [0x4159ec], 0
je 0x40725b
call fcn.0040e9c6
mov ecx, eax
push str.__Cursor_:
call fcn.00405460
mov esi, eax
lea ecx, [esp + 0xb4]
push dword [esp + 0x50]
call fcn.0040e8d6
mov ecx, esi
push eax
call fcn.0040e8ee
mov ecx, eax
push str.___IncompleteFormat_:
call fcn.00405460
cmp byte [esp + 0x80], 0
mov ecx, str.true
mov edx, str.false
cmove edx, ecx
mov ecx, eax
push edx
call fcn.00405460
cmp byte [esp + 0x80], 0
jne 0x40724a
call fcn.0040e9c6
mov ecx, eax
push str.___Line_:
call fcn.00405460
mov ecx, eax
push dword [esp + 0x84]
call fcn.0040e8ee
call fcn.0040e9c6
mov ecx, eax
push 0x410263
call fcn.00405460
mov dword [esp + 0x154], edi
lea ecx, [esp + 0x6c]
push edi
call fcn.0040e89a
mov esi, eax
call fcn.0040e9c6
mov ecx, esi
push eax
call fcn.0040e8b2
mov al, 1
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x78]
call fcn.0040c1e0
lea ecx, [esp + 0x468]
call fcn.0040e834
lea ecx, [esp + 0x168]
call fcn.0040e846
lea ecx, [esp + 0xa8]
call fcn.0040e84c
lea ecx, [esp + 0xcc]
call fcn.0040a340
lea ecx, [esp + 0xa74]
call fcn.0040e810
lock dec dword [esi]
jne 0x4072d9
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, 1
cmp byte [esp], 0
je 0x4072e3
xor ebx, ebx
lea ecx, [esp + 0xb4]
push dword [esp + 0xb8]
call fcn.0040b2f0
lea ecx, [esp + 0x54]
call fcn.0040a940
lea ecx, [esp + 0x40]
push dword [esp + 0x44]
call fcn.0040b2f0
test byte [esp + 0x87c], 1
jne 0x406231
lea ecx, [esp + 0x644]
call fcn.004086c0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x40733b
mov dword [esp + 0x10], 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 + 0x90], 1
jne 0x407369
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x88], 0
test ecx, ecx
je 0x407369
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 + 0xc]
call fcn.0040afd0
call fcn.00407a70
int3