Function at 0x40e800
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x17c
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], edx
mov ecx, eax
and ecx, 0x1f
je 0x40e919
mov edx, eax
mov ebx, eax
mov ebp, eax
shr edx, 0x1b
and edx, 0xf
lea edi, [edx + 2]
mov edx, 0
cmovne edx, edi
shr ebx, 0x11
mov edi, ebx
shr ebp, 9
and ebx, 0x3ff
mov dword [esp + 0x38], edx
mov edx, eax
and ebp, 0x7f
and di, 0x3ff
shr edx, 8
mov dword [esp + 0x30], ebp
and edx, 1
mov word [esp + 0x20], di
mov dword [esp + 0x44], edx
test eax, eax
jns 0x40e928
cmp word [esp + 0x20], 0
je 0x40ea28
mov edi, eax
and edi, 0x80
mov dword [esp + 0x40], edi
cmp ebp, 0x7f
je 0x40ed80
cmp ecx, 0x10
je 0x40f060
jbe 0x40eec8
cmp ecx, 0x11
je 0x410240
cmp ecx, 0x12
je 0x40eb06
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], 0
mov byte [esp + 0x5b], 0x30
nop
cmp word [esp + 0x20], 0
jne 0x40ef40
cmp ebp, 0x7f
jne 0x40ef40
cmp ecx, 0x13
ja case.0x40ef64.0
jmp dword [ecx*4 + 0x426548]
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x30]
mov edx, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, edi
call fcn.004135f0
cmp ebx, 0xfa1d05ee
je 0x40f000
add esp, 0x17c
pop ebx
pop esi
pop edi
pop ebp
ret
test di, di
jne 0x40ea80
cmp ebp, 0x7f
je 0x40edc0
mov edx, eax
mov edi, eax
mov dword [esp + 0x4c], 0xffffffff
shr edx, 5
and edi, 0x80
and edx, 1
mov dword [esp + 0x40], edi
xor edx, 1
mov dword [esp + 0x48], edx
cmp ecx, 0x10
je 0x40edf4
cmp ecx, 0x10
ja 0x40eae8
mov byte [esp + 0x5b], 0x20
xor edx, edx
lea ebx, [ecx - 2]
cmp ebx, 7
ja 0x40e8c0
mov eax, 1
shl eax, cl
test eax, 0x154
jne 0x40eb50
test eax, 0x2a8
je case.0x40ef64.0
cmp ecx, 3
je 0x4100b8
cmp ecx, 5
je 0x40ef28
cmp ecx, 7
je 0x410550
mov edi, dword [esi + 0x14]
mov esi, dword [esi + 0x10]
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x40ff38
cmp word [esp + 0x20], 0
mov eax, esi
je 0x4102b0
mov ebx, dword [esp + 0x2c]
neg eax
mov edx, edi
adc edx, 0
neg edx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x48]
cmovs edx, edi
not edi
cmovs eax, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xc], ebx
mov ecx, edi
movzx ebx, byte [esp + 0x44]
shr ecx, 0x1f
mov dword [esp], esi
mov byte [esp + 4], cl
movzx ecx, byte [esp + 0x5b]
mov byte [esp + 8], bl
call fcn.004128c0
jmp 0x40e919
cmp ebp, 0x7f
je 0x40ed30
mov edi, eax
and edi, 0x80
mov dword [esp + 0x40], edi
cmp ecx, 0x10
je 0x40f110
jbe 0x40eee8
cmp ecx, 0x11
je 0x410220
cmp ecx, 0x12
je 0x40e919
mov dword [esp + 0x48], 0
mov byte [esp + 0x5b], 0x30
mov dword [esp + 0x4c], 0xffffffff
jmp 0x40e8c0
cmp ebp, 0x7f
je 0x40ee20
mov edx, eax
mov edi, eax
mov dword [esp + 0x4c], ebx
shr edx, 5
and edi, 0x80
and edx, 1
mov dword [esp + 0x40], edi
xor edx, 1
mov dword [esp + 0x48], edx
cmp ecx, 0x10
jne 0x40e966
test edi, edi
jne 0x410508
mov dword [esp + 0x40], edx
mov ecx, 0x20
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [esp], ebx
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 4], esi
call fcn.004135f0
jmp 0x40e919
cmp ecx, 0x11
je 0x40ee58
cmp ecx, 0x12
jne 0x410210
cmp word [esp + 0x20], 0
je 0x40e919
mov edi, dword [esp + 0x40]
add ebx, 1
test edi, edi
jne 0x40ef70
mov edi, 1
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
test ecx, ecx
je 0x40e919
jle 0x410200
test edx, edx
je 0x410200
mov eax, dword [esp + 0x2c]
add edi, 1
call fcn.004126d0
cmp edi, ebx
jl 0x40eb1a
jmp 0x40e919
cmp ecx, 2
je 0x4100a0
cmp ecx, 4
je 0x40ef10
mov eax, dword [esi + 0x10]
cmp ecx, 6
je 0x410540
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x38]
test ebx, ebx
jne 0x4100d0
cmp word [esp + 0x20], 0
jne 0x410270
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov eax, edi
or eax, ebp
je 0x410260
mov eax, 0x15
call fcn.004118b0
mov dword [esp + 0x40], 0x13
mov ebx, eax
mov byte [eax + 0x14], 0
mov eax, dword [0x44c400]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], eax
lea eax, [ebx + 0x12]
mov dword [esp + 0x38], eax
nop
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
xor ebp, ebp
mov eax, ebx
mov edi, ebx
mov ecx, ebx
mov ebx, esi
shrd eax, esi, 0x14
and edi, 0xfffff
and eax, 0xfffff
add edi, eax
mov eax, esi
shr eax, 8
and eax, 0xfffff
add edi, eax
mov eax, esi
shr eax, 0x1c
add edi, eax
mov eax, 0x51eb851f
mul edi
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
sub edi, eax
sub ecx, edi
sbb ebx, ebp
imul eax, ecx, 0x8f5c28f5
imul esi, ebx, 0xc28f5c29
add esi, eax
mov eax, 0xc28f5c29
mul ecx
mov ecx, eax
and eax, 3
mov ebx, edx
xor edx, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add ebx, esi
mov dword [esp + 0x24], edx
mov edx, 0x19
imul esi, dword [esp + 0x24], 0x19
mul edx
add edx, esi
add eax, edi
mov edi, dword [esp + 0x30]
adc edx, ebp
shrd ecx, ebx, 2
mov ebp, dword [esp + 0x34]
mov esi, edi
mov edi, dword [esp + 0x44]
shr ebx, 2
add eax, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
adc edx, edx
mov dword [esp + 0x34], ebx
movzx ebx, byte [edi + eax]
add eax, 1
mov dword [esp + 0x20], eax
adc edx, 0
mov byte [ecx + 1], bl
movzx eax, byte [edi + eax]
lea edi, [ecx - 2]
mov dword [esp + 0x24], edx
mov edx, 0x63
mov byte [ecx], al
mov eax, dword [esp + 0x40]
cmp edx, esi
mov esi, 0
sbb esi, ebp
mov dword [esp + 0x38], edi
lea ebx, [eax - 2]
mov dword [esp + 0x40], ebx
jb 0x40ebd0
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov edx, 0x13
mov esi, ecx
xor ecx, ecx
mov ebx, dword [esp + 0x48]
cmp edx, edi
sbb ecx, ebp
jb 0x410610
add esi, 1
mov edx, 0x15
mov dword [esp + 4], esi
mov edi, 0x14
sub edx, eax
mov dword [esp], ebx
sub edi, eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_memmove
test edi, edi
jle 0x40e919
lea esi, cs:[esi]
mov ecx, edi
mov edx, ebx
mov eax, dword [esp + 0x2c]
add esp, 0x17c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004126d0
mov ebx, eax
and ebx, 0x80
mov dword [esp + 0x40], ebx
cmp ecx, 0x10
je 0x40f110
jbe 0x410440
cmp ecx, 0x11
je 0x410220
cmp ecx, 0x12
je 0x40e919
mov dword [esp + 0x48], 0
mov byte [esp + 0x5b], 0x30
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x30], 0xffffffff
jmp 0x40e8c0
cmp ecx, 0x10
je 0x40f060
jbe 0x410470
cmp ecx, 0x11
je 0x410240
cmp ecx, 0x12
je 0x40eb06
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], 0
mov byte [esp + 0x5b], 0x30
mov dword [esp + 0x30], 0xffffffff
jmp 0x40e8c0
mov edx, eax
mov edi, eax
mov dword [esp + 0x30], 0xffffffff
shr edx, 5
and edi, 0x80
mov dword [esp + 0x4c], 0xffffffff
and edx, 1
mov dword [esp + 0x40], edi
xor edx, 1
mov dword [esp + 0x48], edx
cmp ecx, 0x10
jne 0x40e966
test edi, edi
jne 0x410503
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x40e919
mov edx, dword [esi + 0x10]
jle 0x40e919
test edx, edx
jne 0x40ed14
jmp 0x40e919
mov edx, eax
mov edi, eax
mov dword [esp + 0x4c], ebx
shr edx, 5
and edi, 0x80
mov dword [esp + 0x30], 0xffffffff
and edx, 1
mov dword [esp + 0x40], edi
xor edx, 1
mov dword [esp + 0x48], edx
cmp ecx, 0x10
jne 0x40e966
jmp 0x40eab1
mov byte [esp + 0x30], 0x20
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [esp], 0x10
lea eax, [esp + 0x7c]
call fcn.00411e50
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
test eax, eax
jne 0x410180
cmp word [esp + 0x20], 0
jne 0x40e8e8
test esi, esi
je 0x40e90d
jle 0x40e90d
test edi, edi
je 0x40e90d
mov eax, dword [esp + 0x2c]
mov ecx, esi
mov edx, edi
call fcn.004126d0
jmp 0x40e90d
mov dword [esp + 0x4c], ebx
mov edx, 1
mov dword [esp + 0x48], 0
mov byte [esp + 0x5b], 0x30
jmp 0x40e976
mov dword [esp + 0x48], 0
mov edx, 1
mov byte [esp + 0x5b], 0x30
mov dword [esp + 0x4c], 0xffffffff
jmp 0x40e976
movzx eax, word [esi + 0x10]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
jmp 0x40eb79
movsx eax, word [esi + 0x10]
mov edi, eax
mov esi, eax
sar edi, 0x1f
jmp 0x40e9c0
mov ebx, dword [esp + 0x30]
mov edx, 3
cmp ebx, 0xffffffff
cmovne edx, ebx
shr eax, 0x10
mov ebx, eax
mov dword [esp + 0x30], edx
and ebx, 1
cmp ecx, 0x13
ja case.0x40ef64.0
jmp dword [ecx*4 + 0x426598]
mov edi, dword [esi + 0x14]
mov esi, dword [esi + 0x10]
lea eax, [edi + 1]
lea ebp, [esi + edi]
call fcn.004118b0
mov edx, eax
mov eax, esi
mov ecx, edx
test edi, edi
jle 0x410a10
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ebx
lea esi, cs:[esi]
nop
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x40ff20
sub edx, 0x20
add eax, 1
add ecx, 1
mov byte [ecx - 1], dl
cmp ebp, eax
jne 0x40efa0
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
mov byte [edx + edi], 0
test edx, edx
je 0x40e919
mov esi, 1
mov ebp, edx
lea esi, [esi]
mov eax, dword [esp + 0x2c]
mov ecx, edi
mov edx, ebp
add esi, 1
call fcn.004126d0
cmp ebx, esi
jg 0x40efe0
jmp 0x40e919
mov dword [esp], 1
mov edi, str.double_string.free___detected_n
mov ebx, 0x1e
call dword [0x42489c]
mov esi, eax
lea esi, [esi]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0xc], esi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add edi, eax
test ebx, ebx
jg 0x40f020
jmp 0x40e919
mov ecx, 0xc
mov edx, str.ERROR_
jmp 0x40ed14
mov ebp, dword [esp + 0x40]
mov ecx, 0x30
test ebp, ebp
je 0x40eac2
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
lea eax, [esi + 1]
call fcn.004118b0
mov dword [esp + 0x30], eax
test esi, esi
jle 0x411606
mov dword [esp + 0x48], 0
mov edx, 0x30
mov byte [esp + 0x38], dl
mov ecx, dword [esp + 0x30]
lea ebp, [edi + esi]
mov dword [esp + 0x40], esi
mov esi, edi
lea esi, [esi]
movzx eax, byte [esi]
lea edi, [eax - 0x61]
mov edx, edi
cmp dl, 0x19
ja 0x40f0c0
sub eax, 0x20
add esi, 1
mov byte [ecx], al
add ecx, 1
cmp esi, ebp
jne 0x40f0b0
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
cmp word [esp + 0x20], 0
movzx edx, byte [esp + 0x38]
mov byte [eax + esi], 0
je 0x40f518
mov eax, dword [esp + 0x2c]
mov dword [esp], ebx
mov ecx, edx
mov edx, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
call fcn.004135f0
jmp 0x40e919
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40edfc
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
lea eax, [esi + 1]
call fcn.004118b0
mov dword [esp + 0x30], eax
test esi, esi
jle 0x410b7b
mov dword [esp + 0x48], 0
mov edx, 0x30
mov ebx, 0xffffffff
jmp 0x40f098
mov ecx, dword [esi + 0x10]
mov eax, ecx
mov ebx, ecx
cdq
or ebx, edx
je 0x41075b
and ecx, 0xf
mov dword [esp + 0x13c], 0
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 4
mov dword [esp + 0x130], 0
mov esi, ecx
mov byte [esp + 0x140], 0
mov byte [esp + 0x13f], bl
mov ebx, edx
mov dword [esp + 0x134], 0
shr ebx, 4
mov dword [esp + 0x138], 0
or esi, ebx
je 0x41135d
and ecx, 0xf
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 8
mov esi, ecx
mov byte [esp + 0x13e], bl
mov ebx, edx
shr ebx, 8
or esi, ebx
je 0x411371
and ecx, 0xf
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 0xc
mov esi, ecx
mov byte [esp + 0x13d], bl
mov ebx, edx
shr ebx, 0xc
or esi, ebx
je 0x411367
and ecx, 0xf
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 0x10
mov esi, ecx
mov byte [esp + 0x13c], bl
mov ebx, edx
shr ebx, 0x10
or esi, ebx
je 0x411385
and ecx, 0xf
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 0x14
mov esi, ecx
mov byte [esp + 0x13b], bl
mov ebx, edx
shr ebx, 0x14
or esi, ebx
je 0x41137b
and ecx, 0xf
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 0x18
mov esi, ecx
mov byte [esp + 0x13a], bl
mov ebx, edx
shr ebx, 0x18
or esi, ebx
je 0x4113bc
and ecx, 0xf
cmp cl, 0xa
lea esi, [ecx + 0x57]
lea ebx, [ecx + 0x30]
mov ecx, eax
cmovae ebx, esi
shrd ecx, edx, 0x1c
mov esi, ecx
mov byte [esp + 0x139], bl
mov ebx, edx
shr ebx, 0x1c
or esi, ebx
je 0x4113b2
and ecx, 0xf
cmp cl, 9
jbe 0x4109f0
add ecx, 0x57
mov byte [esp + 0x138], cl
mov dword [esp + 0x130], 0x66666666
xor esi, esi
mov dword [esp + 0x134], 0x66666666
mov edi, 0x11
mov ebx, 0x10
sub edi, esi
sub ebx, esi
mov eax, edi
call fcn.00412150
lea ecx, [esp + esi + 0x130]
mov edx, eax
cmp edi, 4
jae 0x41090a
test edi, edi
je 0x40f328
movzx eax, byte [ecx]
mov byte [edx], al
test edi, 2
jne 0x40ff09
mov ecx, ebx
jmp 0x40ed14
mov ebx, dword [esi + 0x10]
mov eax, 5
call fcn.004118b0
mov edx, eax
cmp ebx, 0x7f
jle 0x4107f8
cmp ebx, 0x7ff
jle 0x410a19
cmp ebx, 0xffff
jle 0x410ad0
cmp ebx, 0x10ffff
jg 0x40e919
mov eax, ebx
mov byte [edx + 4], 0
mov ecx, 4
sar eax, 0x12
or eax, 0xfffffff0
mov byte [edx], al
mov eax, ebx
sar eax, 0xc
and eax, 0x3f
or eax, 0xffffff80
mov byte [edx + 1], al
mov eax, ebx
sar eax, 6
and eax, 0x3f
or eax, 0xffffff80
mov byte [edx + 2], al
mov eax, ebx
and eax, 0x3f
or eax, 0xffffff80
mov byte [edx + 3], al
jmp 0x40ed14
fld qword [esi + 0x10]
mov byte [esp + 0x18], bl
lea eax, [esp + 0xac]
movzx ebx, byte [esp + 0x44]
mov esi, dword [esp + 0x48]
fst qword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x10], bl
fldz
mov ebx, dword [esp + 0x24]
fcompi st(1)
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
setbe dl
xor ebx, 0x80000000
fstp qword [esp]
or ecx, ebx
mov dword [esp + 8], esi
setne cl
and edx, ecx
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0xc], dl
movzx edx, byte [esp + 0x5b]
call fcn.00416f80
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
test eax, eax
jne 0x410950
test esi, esi
je 0x40f43f
jle 0x40f43f
test edi, edi
je 0x40f43f
mov eax, dword [esp + 0x2c]
mov ecx, esi
mov edx, edi
call fcn.004126d0
cmp ebx, 0xfa1d05ee
jne 0x40e919
add esp, 0x17c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bf20
fld qword [esi + 0x10]
mov esi, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea eax, [esp + 0x130]
movzx ebx, byte [esp + 0x44]
mov dword [esp + 8], 6
mov ecx, dword [esp + 0x4c]
movzx edx, byte [esp + 0x5b]
mov dword [esp + 0x14], esi
mov byte [esp + 0x10], bl
fldz
fcompi st(1)
setbe byte [esp + 0xc]
fstp qword [esp]
call fcn.00417b10
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x130]
mov esi, dword [esp + 0x134]
mov ebx, dword [esp + 0x138]
test eax, eax
je 0x40f428
lea eax, [esi + 1]
lea ebp, [edi + esi]
call fcn.004118b0
mov edx, edi
mov ecx, eax
test esi, esi
jle 0x4110e4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], eax
lea esi, cs:[esi]
movzx ebx, byte [edx]
lea edi, [ebx - 0x61]
mov eax, edi
cmp al, 0x19
ja 0x40f4ef
sub ebx, 0x20
add edx, 1
mov byte [ecx], bl
add ecx, 1
cmp edx, ebp
jne 0x40f4e0
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov byte [eax + esi], 0
cmp ebx, 0xfa1d05ee
je 0x4112ef
lea esi, cs:[esi]
test eax, eax
je 0x40e919
mov ecx, esi
mov edx, eax
jmp 0x40ed14
fld dword [esi + 0x10]
mov esi, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea eax, [esp + 0x10c]
movzx ebx, byte [esp + 0x44]
mov dword [esp + 8], 6
mov ecx, dword [esp + 0x4c]
movzx edx, byte [esp + 0x5b]
mov dword [esp + 0x14], esi
fldz
mov byte [esp + 0x10], bl
fcompi st(1)
fstp qword [esp]
setbe byte [esp + 0xc]
call fcn.00417b10
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x10c]
mov esi, dword [esp + 0x110]
mov ebx, dword [esp + 0x114]
test eax, eax
je 0x40f428
lea eax, [esi + 1]
lea ebp, [edi + esi]
call fcn.004118b0
mov edx, edi
mov ecx, eax
test esi, esi
jle 0x4110e4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], eax
lea esi, [esi]
movzx ebx, byte [edx]
lea edi, [ebx - 0x61]
mov eax, edi
cmp al, 0x19
ja 0x410638
sub ebx, 0x20
add edx, 1
add ecx, 1
mov byte [ecx - 1], bl
cmp ebp, edx
jne 0x40f5b0
jmp 0x40f4fb
fldz
fld qword [esi + 0x10]
fucomi st(1)
fstp st(1)
jp 0x40f5e6
je 0x4108d4
fld dword [0x42720c]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40f5fa
je 0x410990
fld dword [0x427210]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40f648
jne 0x40f648
fstp st(0)
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
mov edx, str.inf
mov eax, str.INF
mov dword [esp + 8], edi
mov edi, dword [esp + 0x48]
test ecx, ecx
cmove eax, edx
movzx ecx, byte [esp + 0x5b]
mov edx, 4
mov dword [esp + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
call fcn.004135f0
fld qword [esi + 0x10]
fld dword [0x427214]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40f696
jne 0x40f696
fstp st(0)
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov eax, str._INF
movzx ecx, byte [esp + 0x5b]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x48]
test edx, edx
mov edx, str._inf
cmove eax, edx
mov edx, 4
mov dword [esp + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
call fcn.004135f0
fld qword [esi + 0x10]
fldz
mov edx, 1
fcompi st(1)
fld st(0)
jbe 0x40f6a7
fchs
xor edx, edx
fld dword [0x427204]
fcompi st(1)
jbe 0x40f6c5
fld qword [0x427218]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x410d5e
jmp 0x40f6c7
fstp st(0)
mov esi, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea eax, [esp + 0xe8]
movzx ebx, byte [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0xc], dl
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
mov byte [esp + 0x10], bl
movzx edx, byte [esp + 0x5b]
mov dword [esp + 8], esi
fstp qword [esp]
call fcn.00417b10
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xec]
mov ebp, dword [esp + 0xf0]
test eax, eax
jne 0x410a5b
test ebx, ebx
je 0x40f738
jle 0x40f738
test esi, esi
je 0x40f738
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov edx, esi
call fcn.004126d0
cmp ebp, 0xfa1d05ee
jne 0x40e919
jmp 0x40f44b
fld dword [esi + 0x10]
mov esi, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea eax, [esp + 0x94]
movzx ebx, byte [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
fldz
mov byte [esp + 0x10], bl
movzx edx, byte [esp + 0x5b]
fcompi st(1)
mov dword [esp + 8], esi
fstp qword [esp]
setbe byte [esp + 0xc]
call fcn.00416f80
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
test ebp, ebp
je 0x40f428
lea eax, [esi + 1]
lea ebp, [edi + esi]
call fcn.004118b0
mov ecx, eax
test esi, esi
jle 0x411059
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], esi
mov esi, edi
lea esi, [esi]
movzx edx, byte [esi]
lea edi, [edx - 0x61]
mov eax, edi
cmp al, 0x19
ja 0x410620
sub edx, 0x20
add esi, 1
add ecx, 1
mov byte [ecx - 1], dl
cmp esi, ebp
jne 0x40f7d0
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov byte [eax + esi], 0
cmp ebx, 0xfa1d05ee
jne 0x40f518
mov dword [esp + 0x20], eax
call fcn.0040bf20
mov eax, dword [esp + 0x20]
test esi, esi
jg 0x40f518
jmp 0x40e919
fldz
fld dword [esi + 0x10]
fucomi st(1)
fstp st(1)
jp 0x40f839
je 0x4108d8
fld dword [0x4271f8]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40f84d
je 0x410994
fld dword [0x4271fc]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40f89b
jne 0x40f89b
fstp st(0)
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov edx, str.inf
movzx ecx, byte [esp + 0x5b]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x48]
test eax, eax
mov eax, str.INF
cmove eax, edx
mov edx, 4
mov dword [esp + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
call fcn.004135f0
fld dword [esi + 0x10]
fld dword [0x427200]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40f8e9
jne 0x40f8e9
fstp st(0)
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov edx, str._inf
mov eax, str._INF
movzx ecx, byte [esp + 0x5b]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x48]
test ebp, ebp
cmove eax, edx
mov edx, 4
mov dword [esp + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
call fcn.004135f0
fld dword [esi + 0x10]
fldz
mov edx, 1
fcompi st(1)
fld st(0)
jbe 0x40f8fa
fchs
xor edx, edx
fld st(1)
fld dword [0x427204]
fcompi st(2)
jbe 0x40f91c
fld dword [0x427208]
fxch st(2)
fcompi st(2)
fstp st(1)
jae 0x410e72
fstp st(1)
jmp 0x40f920
fstp st(1)
fstp st(1)
mov esi, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea eax, [esp + 0xc4]
movzx ebx, byte [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0xc], dl
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
mov byte [esp + 0x10], bl
movzx edx, byte [esp + 0x5b]
mov dword [esp + 8], esi
fstp qword [esp]
call fcn.00417b10
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xcc]
test edi, edi
je 0x40f721
lea eax, [ebx + 1]
lea edi, [esi + ebx]
call fcn.004118b0
mov edx, eax
mov eax, esi
mov ecx, edx
test ebx, ebx
jle 0x411301
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], edx
lea esi, cs:[esi]
movzx ebx, byte [eax]
lea esi, [ebx - 0x61]
mov edx, esi
cmp dl, 0x19
ja 0x40f9b0
sub ebx, 0x20
add eax, 1
mov byte [ecx], bl
add ecx, 1
cmp edi, eax
jne 0x40f9a0
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov byte [edx + ebx], 0
cmp ebp, 0xfa1d05ee
je 0x4113fe
test edx, edx
je 0x40e919
mov ecx, ebx
jmp 0x40ed14
mov eax, dword [esi + 0x10]
cmp eax, 0x80000000
je 0x410c7c
test eax, eax
je 0x410bca
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fchs
fst dword [esp + 0x20]
fldz
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fxch st(1)
mov dword [esp + 0x20], eax
fcompi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
fld dword [0x4271e8]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x40fa3d
fld dword [0x4271ec]
fcompi st(1)
fstp st(0)
ja 0x411083
jmp 0x40fa3f
fstp st(0)
mov dword [esp], eax
lea ecx, [esp + 0x88]
mov edx, 8
mov eax, ecx
call fcn.004145b0
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x410e40
test ebx, ebx
je 0x40fa88
jle 0x40fa88
test esi, esi
jne 0x411628
cmp dword [esp + 0x20], 0xfa1d05ee
jne 0x40e919
jmp 0x40f44b
fld qword [esi + 0x10]
fstp qword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ebx, ecx
mov edx, eax
xor ebx, 0x80000000
or edx, ebx
je 0x410ca6
or eax, ecx
je 0x410b9f
fld qword [esp + 0x20]
fchs
fld qword [esp + 0x20]
fldz
fcompi st(1)
fxch st(1)
fcmovbe st(0), st(1)
fld qword [0x4271f0]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x40faf8
fld dword [0x4271ec]
fcompi st(1)
fstp st(0)
ja 0x410f9b
fstp st(0)
jmp 0x40fafc
fstp st(0)
fstp st(0)
fld qword [esp + 0x20]
lea eax, [esp + 0x118]
mov edx, 0x11
fstp qword [esp]
call fcn.00416ca0
mov eax, dword [esp + 0x120]
mov esi, dword [esp + 0x118]
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x40]
test edi, edi
je 0x40fa7a
lea eax, [ebx + 1]
call fcn.004118b0
mov ebp, eax
test ebx, ebx
jle 0x411333
mov dword [esp + 0x30], ebx
mov eax, esi
mov ecx, ebp
lea edi, [esi + ebx]
lea esi, cs:[esi]
nop
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x40fb70
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp edi, eax
jne 0x40fb60
mov ebx, dword [esp + 0x30]
mov byte [ebp + ebx], 0
cmp dword [esp + 0x20], 0xfa1d05ee
je 0x411353
test ebp, ebp
je 0x40e919
test ebx, ebx
jg 0x40fd63
jmp 0x40e919
mov eax, dword [esi + 0x10]
cmp eax, 0x80000000
je 0x410c62
test eax, eax
je 0x410b84
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fchs
fst dword [esp + 0x20]
fldz
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fxch st(1)
mov dword [esp + 0x20], eax
fcompi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
fld dword [0x4271e8]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x40fc02
fld dword [0x4271ec]
fcompi st(1)
fstp st(0)
ja 0x411128
jmp 0x40fc04
fstp st(0)
mov dword [esp], eax
lea ecx, [esp + 0x100]
mov edx, 8
mov eax, ecx
call fcn.004145b0
mov eax, dword [esp + 0x108]
mov esi, dword [esp + 0x100]
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40fa7a
lea eax, [ebx + 1]
call fcn.004118b0
mov ebp, eax
test ebx, ebx
jle 0x411333
mov dword [esp + 0x30], ebx
mov eax, esi
mov ecx, ebp
lea edi, [esi + ebx]
lea esi, [esi]
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x40fc70
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp edi, eax
jne 0x40fc60
jmp 0x40fb7c
fld qword [esi + 0x10]
fst qword [esp + 0x20]
fldz
fxch st(1)
fcomi st(1)
fstp st(1)
jp 0x410a43
je 0x410d00
ja 0x410a50
fchs
fld qword [0x4271f0]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x40fcc4
fld dword [0x4271ec]
fcompi st(1)
fstp st(0)
ja 0x410f02
jmp 0x40fcc6
fstp st(0)
fld qword [esp + 0x20]
lea eax, [esp + 0xdc]
mov edx, 0x11
fstp qword [esp]
call fcn.00416ca0
mov eax, dword [esp + 0xe4]
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x40]
test edi, edi
je 0x40fa7a
lea eax, [ebx + 1]
call fcn.004118b0
mov ebp, eax
test ebx, ebx
jle 0x410e52
mov dword [esp + 0x30], ebx
mov eax, esi
mov ecx, ebp
lea edi, [esi + ebx]
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x40fd30
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp edi, eax
jne 0x40fd20
mov ebx, dword [esp + 0x30]
mov byte [ebp + ebx], 0
cmp dword [esp + 0x20], 0xfa1d05ee
je 0x41111e
test ebx, ebx
jle 0x40e919
test ebp, ebp
je 0x40e919
mov ecx, ebx
mov edx, ebp
jmp 0x40ed14
fldz
fld dword [esi + 0x10]
fcomi st(1)
fstp st(1)
jp 0x410a3c
je 0x410cd0
ja 0x410a3c
fld st(0)
fchs
fld dword [0x4271e8]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x40fdab
fld dword [0x4271ec]
fcompi st(1)
fstp st(0)
ja 0x410de1
jmp 0x40fdad
fstp st(0)
lea eax, [esp + 0xb8]
fstp dword [esp]
mov edx, 8
call fcn.004145b0
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40fa7a
lea eax, [ebx + 1]
call fcn.004118b0
mov ebp, eax
test ebx, ebx
jle 0x410e52
mov dword [esp + 0x30], ebx
mov eax, esi
mov ecx, ebp
lea edi, [esi + ebx]
lea esi, cs:[esi]
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x40fe18
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp edi, eax
jne 0x40fe08
jmp 0x40fd3c
fld qword [esi + 0x10]
fstp qword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ebx, ecx
mov edx, eax
xor ebx, 0x80000000
or edx, ebx
je 0x410d30
or eax, ecx
je 0x410c33
fld qword [esp + 0x20]
fchs
fld qword [esp + 0x20]
fldz
fcompi st(1)
fxch st(1)
fcmovbe st(0), st(1)
fld qword [0x4271f0]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x40fe86
fld dword [0x4271ec]
fcompi st(1)
fstp st(0)
ja 0x410ffa
fstp st(0)
jmp 0x40fe8a
fstp st(0)
fstp st(0)
fld qword [esp + 0x20]
lea eax, [esp + 0xa0]
mov edx, 0x11
fstp qword [esp]
call fcn.00416ca0
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40fa7a
lea eax, [ebx + 1]
call fcn.004118b0
mov ebp, eax
test ebx, ebx
jle 0x410e52
mov dword [esp + 0x30], ebx
mov eax, esi
mov ecx, ebp
lea edi, [esi + ebx]
lea esi, [esi]
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x40fef8
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp edi, eax
jne 0x40fee8
jmp 0x40fd3c
movzx eax, word [ecx + edi - 2]
mov ecx, ebx
mov word [edx + edi - 2], ax
jmp 0x40ed14
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp eax, ebp
jne 0x40efa0
jmp 0x40efc1
mov eax, edi
shr eax, 0x1f
and edx, eax
cmp dword [esp + 0x38], 3
je 0x410498
test dl, dl
je 0x4104a8
mov eax, dword [esp + 0x38]
cdq
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
neg esi
mov byte [esp + 0x67], 1
adc edi, 0
neg edi
mov byte [esp + 0x66], 0
test edi, edi
jns 0x40ff80
neg esi
mov byte [esp + 0x66], 1
adc edi, 0
neg edi
mov dword [esp + 0x30], 0x4264d7
xor ebp, ebp
jmp 0x40ff96
mov dword [esp + 0x30], ecx
mov ebp, ebx
lea eax, [esp + 0x68]
mov edx, dword [esp + 0x54]
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
call fcn.0041b510
mov dword [esp + 0x38], eax
mov eax, dword [0x44c414]
add eax, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
xor edx, edx
movzx ebx, byte [eax]
mov eax, 2
call fcn.0040db90
mov esi, eax
test eax, eax
je 0x41141a
mov byte [eax], bl
lea ebx, [ebp + 1]
mov byte [eax + 1], 0
lea eax, [ebp + 2]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], eax
call fcn.004118b0
mov ecx, eax
movzx eax, byte [esi]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
mov byte [ecx], al
lea eax, [ecx + 1]
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov eax, esi
or eax, edi
mov byte [ecx + ebp + 1], 0
jne 0x40ff90
cmp byte [esp + 0x66], 0
mov dword [esp + 0x30], ebx
mov ebx, ecx
mov ecx, dword [esp + 0x5c]
jne 0x410792
mov esi, dword [esp + 0x40]
test esi, esi
jne 0x4106b5
cmp byte [esp + 0x67], 0
jne 0x410561
cmp word [esp + 0x20], 0
jne 0x4104d7
mov edi, dword [esp + 0x30]
test edi, edi
je 0x40e919
mov esi, dword [esp + 0x30]
test esi, esi
jle 0x40e919
test ebx, ebx
je 0x40e919
mov ecx, dword [esp + 0x30]
mov edx, ebx
jmp 0x40ed14
movzx eax, byte [esi + 0x10]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
jmp 0x40eb79
movsx eax, byte [esi + 0x10]
mov edi, eax
mov esi, eax
sar edi, 0x1f
jmp 0x40e9c0
mov esi, dword [esp + 0x38]
mov eax, 2
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp esi, 3
cmovne eax, esi
mov esi, eax
lea eax, [esp + 0x70]
mov dword [esp], esi
call fcn.00411e50
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
test eax, eax
jne 0x410590
cmp word [esp + 0x20], 0
jne 0x41067c
test esi, esi
je 0x410130
jle 0x410130
test ebx, ebx
je 0x410130
mov eax, dword [esp + 0x2c]
mov ecx, esi
mov edx, ebx
call fcn.004126d0
cmp ebp, 0xfa1d05ee
jne 0x40e919
mov dword [esp], 1
mov edi, str.double_string.free___detected_n
mov ebx, 0x1e
call dword [0x42489c]
mov esi, eax
lea esi, [esi]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0xc], esi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add edi, eax
test ebx, ebx
jg 0x410158
jmp 0x40e919
lea eax, [esi + 1]
lea ebp, [edi + esi]
call fcn.004118b0
mov dword [esp + 0x40], eax
mov ecx, eax
mov eax, edi
test esi, esi
jle 0x41087c
mov dword [esp + 0x38], ebx
nop
movzx edx, byte [eax]
lea edi, [edx - 0x61]
mov ebx, edi
cmp bl, 0x19
ja 0x4101b0
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp ebp, eax
jne 0x4101a0
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov byte [eax + esi], 0
cmp ebx, 0xfa1d05ee
je 0x410808
cmp word [esp + 0x20], 0
jne 0x410650
test esi, esi
jle 0x40e919
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40e919
mov edx, dword [esp + 0x40]
mov ecx, esi
jmp 0x40ed14
add edi, 1
cmp edi, ebx
jl 0x40eb20
jmp 0x40e919
mov byte [esp + 0x5b], 0x20
jmp 0x40e8c0
mov dword [esp + 0x48], 0
mov byte [esp + 0x30], 0x30
mov dword [esp + 0x4c], 0xffffffff
jmp 0x40ee5d
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], 0
mov byte [esp + 0x30], 0x30
jmp 0x40ee5d
mov ebx, 0x4264d8
mov edi, 1
jmp 0x40ed10
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov byte [esp + 4], 1
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x44]
mov byte [esp + 8], al
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call fcn.004128c0
jmp 0x40e919
or eax, edi
je 0x4106a6
mov eax, dword [0x44c3f8]
mov edx, dword [0x44c3fc]
xor eax, esi
xor edx, edi
or eax, edx
je 0x410783
mov eax, 0x15
call fcn.004118b0
mov dword [esp + 0x48], eax
test edi, edi
js 0x4107d5
mov byte [eax + 0x14], 0
mov byte [esp + 0x4c], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], 0x13
mov ebp, dword [0x44c400]
add eax, 0x12
mov dword [esp + 0x30], eax
lea esi, cs:[esi]
nop
mov edx, edi
mov eax, esi
mov ecx, esi
mov ebx, esi
shrd eax, edx, 0x14
and ecx, 0xfffff
mov dword [esp + 0x40], edi
and eax, 0xfffff
add ecx, eax
mov eax, edi
shr eax, 8
and eax, 0xfffff
add ecx, eax
mov eax, edi
shr eax, 0x1c
add ecx, eax
mov eax, 0x51eb851f
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
sub ecx, eax
sub esi, ecx
sbb edi, 0
imul eax, esi, 0x8f5c28f5
imul ecx, edi, 0xc28f5c29
add ecx, eax
mov eax, 0xc28f5c29
mul esi
mov edi, edx
mov esi, eax
mov edx, ebx
add edi, ecx
shrd esi, edi, 2
shr edi, 2
imul eax, esi, 0xffffff9c
add eax, ebx
movzx ecx, byte [ebp + eax*2]
lea ebx, [eax + eax]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], ebx
mov byte [eax + 1], cl
movzx ecx, byte [ebp + ebx + 1]
mov ebx, dword [esp + 0x20]
mov byte [eax], cl
lea ecx, [eax - 2]
mov dword [esp + 0x38], ebx
sub ebx, 2
mov dword [esp + 0x30], ecx
mov ecx, 0x63
mov dword [esp + 0x20], ebx
xor ebx, ebx
cmp ecx, edx
mov edx, dword [esp + 0x40]
mov ecx, ebx
sbb ecx, edx
jl 0x410310
mov edx, dword [esp + 0x44]
xor edi, edi
mov ebp, dword [esp + 0x38]
mov esi, edx
mov edx, 0x13
lea ecx, [ebp - 1]
add esi, 1
adc edi, 0
cmp edx, esi
sbb ebx, edi
jl 0x4103f0
mov dword [esp + 0x20], ecx
add eax, 1
mov ecx, ebp
cmp byte [esp + 0x4c], 0
je 0x410404
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
add eax, ecx
mov byte [eax], 0x2d
mov dword [esp + 4], eax
mov edx, 0x15
mov eax, dword [esp + 0x48]
mov ebx, 0x14
sub edx, ecx
sub ebx, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_memmove
test ebx, ebx
jle 0x40e919
mov edx, dword [esp + 0x48]
mov ecx, ebx
jmp 0x40ed14
mov dword [esp + 0x48], 0
mov edx, 1
mov byte [esp + 0x5b], 0x30
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x30], 0xffffffff
jmp 0x40e976
mov dword [esp + 0x4c], ebx
mov edx, 1
mov dword [esp + 0x48], 0
mov byte [esp + 0x5b], 0x30
mov dword [esp + 0x30], 0xffffffff
jmp 0x40e976
test dl, dl
jne 0x410746
mov dword [esp + 0x38], 2
mov eax, esi
or eax, edi
jne 0x41076c
mov ebp, dword [esp + 0x40]
test ebp, ebp
jne 0x410853
cmp word [esp + 0x20], 0
mov dword [esp + 0x30], 1
mov ebx, 0x4264d8
je 0x410092
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov edx, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, ebx
call fcn.004135f0
jmp 0x40e919
mov ebx, 0xffffffff
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
lea eax, [esi + 1]
call fcn.004118b0
mov edx, 0x20
mov dword [esp + 0x30], eax
test esi, esi
jg 0x40f098
cmp word [esp + 0x20], 0
mov byte [eax + esi], 0
je 0x40e919
jmp 0x40f0e9
xor edx, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
jmp 0x40eb79
mov eax, dword [esi + 0x10]
mov edi, eax
mov esi, eax
sar edi, 0x1f
jmp 0x40e9c0
mov ebx, eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x130]
mov byte [esp + 0x130], 0x2d
call fcn.00412000
cmp word [esp + 0x20], 0
je 0x410072
sub dword [esp + 0x4c], 1
jmp 0x4104d7
lea eax, [esi + 1]
lea edi, [ebx + esi]
call fcn.004118b0
mov dword [esp + 0x30], eax
mov ecx, eax
mov eax, ebx
test esi, esi
jle 0x410aab
lea esi, cs:[esi]
movzx edx, byte [eax]
lea ebx, [edx - 0x61]
cmp bl, 0x19
ja 0x4105be
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp eax, edi
jne 0x4105b0
mov eax, dword [esp + 0x30]
mov byte [eax + esi], 0
cmp ebp, 0xfa1d05ee
je 0x410b30
cmp word [esp + 0x20], 0
jne 0x4108a8
test esi, esi
jle 0x40e919
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40e919
mov edx, dword [esp + 0x30]
mov ecx, esi
jmp 0x40ed14
sub eax, 1
jmp 0x40ece2
add esi, 1
mov byte [ecx], dl
add ecx, 1
cmp ebp, esi
jne 0x40f7d0
jmp 0x40f7f0
add edx, 1
mov byte [ecx], bl
add ecx, 1
cmp edx, ebp
jne 0x40f5b0
jmp 0x40f4fb
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x30]
mov edx, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call fcn.004135f0
jmp 0x40e919
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov edx, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, ebx
call fcn.004135f0
jmp 0x410130
mov ecx, 1
mov edx, 0x4264d8
jmp 0x40ed14
mov eax, ecx
call fcn.004118b0
mov edx, dword [esp + 0x30]
test edx, edx
jle 0x410b01
mov esi, dword [esp + 0x30]
mov edx, eax
mov ebp, eax
add esi, ebx
lea esi, [esi]
movzx ecx, byte [ebx]
lea edi, [ecx - 0x61]
mov eax, edi
cmp al, 0x19
ja 0x410738
sub ecx, 0x20
add ebx, 1
add edx, 1
mov byte [edx - 1], cl
cmp esi, ebx
jne 0x4106d8
mov esi, dword [esp + 0x60]
cmp byte [esp + 0x67], 0
mov eax, ebp
mov byte [ebp + esi], 0
jne 0x41055f
cmp word [esp + 0x20], 0
jne 0x4109c6
mov ebp, dword [esp + 0x30]
test ebp, ebp
jle 0x40e919
mov ebx, eax
test eax, eax
jne 0x410092
jmp 0x40e919
add ebx, 1
mov byte [edx], cl
add edx, 1
cmp ebx, esi
jne 0x4106d8
jmp 0x4106f4
mov dword [esp + 0x50], 2
mov dword [esp + 0x54], 0
jmp 0x40ff5f
mov ebx, 1
mov edx, 0x4264d8
mov ecx, ebx
jmp 0x40ed14
mov eax, dword [esp + 0x38]
mov byte [esp + 0x67], 0
cdq
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
jmp 0x40ff6b
mov ecx, 0x14
mov edx, str._9223372036854775808
jmp 0x40ed14
lea esi, [ebp + 3]
mov dword [esp + 0x38], ecx
mov eax, esi
call fcn.004118b0
mov ecx, dword [esp + 0x30]
mov byte [eax], 0x2d
mov edi, eax
lea eax, [eax + 1]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov ebx, edi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x38]
mov byte [edi + ecx], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], ecx
mov ecx, esi
jmp 0x41004f
neg esi
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x38]
adc edi, 0
neg edi
cmp eax, esi
sbb eax, edi
jge 0x411189
mov byte [esp + 0x4c], 1
jmp 0x4102ee
mov byte [eax], bl
mov ecx, 1
mov byte [eax + 1], 0
jmp 0x40ed14
mov dword [esp], 1
mov ebp, str.double_string.free___detected_n
mov edi, 0x1e
call dword [0x42489c]
mov ebx, eax
lea esi, [esi]
mov dword [esp + 8], edi
mov dword [esp], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add ebp, eax
test edi, edi
jg 0x410828
mov edi, dword [esp + 0x40]
xor ebx, ebx
jmp 0x40ee91
mov eax, 2
mov ebx, 0x4264d8
call fcn.004118b0
mov dword [esp + 0x60], 1
mov dword [esp + 0x30], 1
mov byte [esp + 0x67], 0
jmp 0x4106c8
mov byte [ecx + esi], 0
cmp ebx, 0xfa1d05ee
je 0x410808
cmp word [esp + 0x20], 0
jne 0x410650
test esi, esi
je 0x40e919
jmp 0x4101e0
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov edx, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call fcn.004135f0
jmp 0x40e919
fstp st(0)
jmp 0x4108da
fstp st(0)
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov edx, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, 0x4264d8
call fcn.004135f0
jmp 0x40e919
mov eax, dword [ecx]
lea esi, [edx + 4]
and esi, 0xfffffffc
mov dword [edx], eax
mov eax, dword [edi + ecx - 4]
mov dword [edx + edi - 4], eax
mov eax, edx
sub eax, esi
sub ecx, eax
add eax, edi
and eax, 0xfffffffc
cmp eax, 4
jb 0x40f328
and eax, 0xfffffffc
xor edi, edi
mov ebp, dword [ecx + edi]
mov dword [esi + edi], ebp
add edi, 4
cmp edi, eax
jb 0x410935
mov ecx, ebx
jmp 0x40ed14
lea eax, [esi + 1]
lea ebp, [edi + esi]
call fcn.004118b0
mov ecx, eax
test esi, esi
jle 0x411059
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], esi
mov esi, edi
nop
movzx edx, byte [esi]
lea edi, [edx - 0x61]
mov eax, edi
cmp al, 0x19
ja 0x41097f
sub edx, 0x20
add esi, 1
mov byte [ecx], dl
add ecx, 1
cmp ebp, esi
jne 0x410970
jmp 0x40f7f0
fstp st(0)
jmp 0x410996
fstp st(0)
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov edx, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, 0x426535
call fcn.004135f0
jmp 0x40e919
mov esi, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x5b]
mov edx, dword [esp + 0x30]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [esp], esi
call fcn.004135f0
jmp 0x40e919
mov eax, edx
xor edx, edx
add ecx, 0x30
or eax, edx
mov byte [esp + 0x138], cl
jne 0x40f2d4
mov esi, 8
jmp 0x40f2ec
mov byte [edx + edi], 0
jmp 0x40e919
mov eax, ebx
mov byte [edx + 2], 0
mov ecx, 2
sar eax, 6
or eax, 0xffffffc0
mov byte [edx], al
mov eax, ebx
and eax, 0x3f
or eax, 0xffffff80
mov byte [edx + 1], al
jmp 0x40ed14
fld st(0)
jmp 0x40fd8b
fstp st(0)
jmp 0x410a52
fstp st(0)
fld qword [esp + 0x20]
jmp 0x40fca4
lea eax, [ebx + 1]
lea edi, [esi + ebx]
call fcn.004118b0
mov edx, eax
mov eax, esi
mov ecx, edx
test ebx, ebx
jle 0x411301
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], ebp
mov ebp, edx
nop
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x410a90
sub edx, 0x20
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp edi, eax
jne 0x410a80
mov edx, ebp
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
jmp 0x40f9c4
mov byte [ecx + esi], 0
cmp ebp, 0xfa1d05ee
je 0x410b30
cmp word [esp + 0x20], 0
jne 0x4108a8
test esi, esi
je 0x40e919
jmp 0x4105ea
mov eax, ebx
mov byte [edx + 3], 0
mov ecx, 3
sar eax, 0xc
or eax, 0xffffffe0
mov byte [edx], al
mov eax, ebx
sar eax, 6
and eax, 0x3f
or eax, 0xffffff80
mov byte [edx + 1], al
mov eax, ebx
and eax, 0x3f
or eax, 0xffffff80
mov byte [edx + 2], al
jmp 0x40ed14
mov esi, dword [esp + 0x60]
cmp byte [esp + 0x67], 0
mov byte [eax + esi], 0
jne 0x41055f
cmp word [esp + 0x20], 0
jne 0x4109c6
cmp dword [esp + 0x30], 0
jne 0x410716
jmp 0x40e919
mov dword [esp], 1
mov edi, str.double_string.free___detected_n
mov ebx, 0x1e
call dword [0x42489c]
mov ebp, eax
lea esi, [esi]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add edi, eax
test ebx, ebx
jg 0x410b50
mov ebx, dword [esp + 0x30]
xor ebp, ebp
jmp 0x41010d
mov byte [eax + esi], 0
jmp 0x40e919
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4112cc
mov ecx, 3
mov edx, 0x4264da
jmp 0x40ed14
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x410b90
mov eax, 4
mov ebx, 3
mov esi, 0x4264da
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fb4b
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x410b90
mov eax, 4
mov ebx, 3
mov esi, 0x4264da
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
mov dword [esp + 0x30], ebx
mov eax, esi
mov ecx, ebp
lea edi, [esi + ebx]
lea esi, cs:[esi]
movzx edx, byte [eax]
lea esi, [edx - 0x61]
mov ebx, esi
cmp bl, 0x19
ja 0x410c22
sub edx, 0x20
add eax, 1
add ecx, 1
mov byte [ecx - 1], dl
cmp edi, eax
jne 0x410c00
jmp 0x40fd3c
add eax, 1
mov byte [ecx], dl
add ecx, 1
cmp eax, edi
jne 0x410c00
jmp 0x40fd3c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x410b90
mov eax, 4
mov ebx, 3
mov esi, 0x4264da
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fed9
cmp dword [esp + 0x40], 0
jne 0x41138f
mov ecx, 4
mov edx, str._0.0
jmp 0x40ed14
cmp dword [esp + 0x40], 0
je 0x410c6d
mov eax, 5
mov ebx, 4
mov esi, str._0.0
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x410bf0
cmp dword [esp + 0x40], 0
je 0x410c6d
mov eax, 5
mov ebx, 4
mov esi, str._0.0
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fb4b
fstp st(0)
cmp dword [esp + 0x40], 0
je 0x410b90
mov eax, 4
mov ebx, 3
mov esi, 0x4264da
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fdf8
fstp st(0)
cmp dword [esp + 0x40], 0
je 0x410b90
mov eax, 4
mov ebx, 3
mov esi, 0x4264da
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fd15
cmp dword [esp + 0x40], 0
je 0x410c6d
mov eax, 5
mov ebx, 4
mov esi, str._0.0
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fed9
mov eax, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea esi, [esp + 0xf4]
mov byte [esp + 0xc], dl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x44]
movzx edx, byte [esp + 0x5b]
fstp qword [esp]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, esi
call fcn.00416f80
cmp dword [esp + 0x40], 0
mov edi, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov ebx, dword [esp + 0xfc]
jne 0x4113c6
test ebp, ebp
je 0x40f43f
jle 0x40f43f
test edi, edi
je 0x40f43f
mov eax, dword [esp + 0x2c]
mov ecx, ebp
mov edx, edi
call fcn.004126d0
jmp 0x40f43f
lea eax, [esp + 0x124]
mov edx, 6
fstp dword [esp]
call fcn.004145b0
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
lea eax, [esp + 0x130]
mov edx, dword [esp + 0x124]
call fcn.0040e2d0
cmp ebx, 0xfa1d05ee
je 0x411549
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x20], eax
jmp 0x40fdda
lea eax, [ebx + 1]
call fcn.004118b0
mov ebp, eax
test ebx, ebx
jg 0x410bf0
mov byte [ebp + ebx], 0
cmp dword [esp + 0x20], 0xfa1d05ee
je 0x41161e
test ebx, ebx
je 0x40e919
jmp 0x40fd53
fstp st(0)
mov eax, dword [esp + 0x48]
mov byte [esp + 0x18], bl
lea esi, [esp + 0xd0]
mov byte [esp + 0xc], dl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x44]
fstp qword [esp]
movzx edx, byte [esp + 0x5b]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, esi
call fcn.00416f80
cmp dword [esp + 0x40], 0
mov edi, dword [esp + 0xd0]
mov ebp, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
je 0x410db9
mov ecx, ebp
mov edx, edi
mov eax, esi
call fcn.00411aa0
mov edi, dword [esp + 0xd0]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0xd8]
cmp ebx, 0xfa1d05ee
je 0x4113f2
mov ebx, esi
jmp 0x410db9
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov eax, edx
mov esi, edx
xor edx, edx
shr eax, 0x14
and esi, 0xfffff
mov dword [esp + 0x34], edx
and eax, 0x7ff
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], eax
test edx, edx
jne 0x410f41
cmp eax, 0x7ff
je 0x411504
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
or eax, dword [esp + 0x30]
or edx, dword [esp + 0x34]
jne 0x411196
test eax, eax
jne 0x411196
test ebp, ebp
js 0x4115f7
mov ecx, 5
mov edx, str.0e00
lea eax, [esp + 0x130]
call fcn.0040e2d0
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x20], eax
jmp 0x40fcf7
lea eax, [esp + 0x124]
mov edx, 0x12
fstp qword [esp]
call fcn.00416ca0
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
lea eax, [esp + 0x130]
mov edx, dword [esp + 0x124]
call fcn.0040e2d0
cmp ebx, 0xfa1d05ee
je 0x4114fa
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x20], eax
jmp 0x40fb2d
lea eax, [esp + 0x124]
mov edx, 0x12
fstp qword [esp]
call fcn.00416ca0
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
lea eax, [esp + 0x130]
mov edx, dword [esp + 0x124]
call fcn.0040e2d0
cmp ebx, 0xfa1d05ee
je 0x411410
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x20], eax
jmp 0x40febb
mov byte [eax + esi], 0
cmp ebx, 0xfa1d05ee
jne 0x40e919
mov dword [esp + 0x20], eax
call fcn.0040bf20
test esi, esi
mov eax, dword [esp + 0x20]
je 0x40e919
jmp 0x40f815
mov dword [esp], eax
lea ecx, [esp + 0x124]
mov edx, 6
mov eax, ecx
call fcn.004145b0
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
lea eax, [esp + 0x130]
mov edx, dword [esp + 0x124]
call fcn.0040e2d0
cmp ebx, 0xfa1d05ee
je 0x41153f
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x20], eax
jmp 0x40fa6e
mov byte [eax + esi], 0
cmp ebx, 0xfa1d05ee
jne 0x40e919
mov dword [esp + 0x20], eax
call fcn.0040bf20
test esi, esi
mov eax, dword [esp + 0x20]
je 0x40e919
test eax, eax
je 0x40e919
test esi, esi
jg 0x40f520
jmp 0x40e919
call fcn.0040bf20
jmp 0x40fd53
mov dword [esp], eax
lea ecx, [esp + 0x124]
mov edx, 6
mov eax, ecx
call fcn.004145b0
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
lea eax, [esp + 0x130]
mov edx, dword [esp + 0x124]
call fcn.0040e2d0
cmp ebx, 0xfa1d05ee
je 0x4114b6
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x20], eax
jmp 0x40fc33
mov dword [esp + 0x20], 0x14
jmp 0x4103f7
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov eax, 0x34
add ecx, 0xfffffc01
adc ebx, 0xffffffff
cmp eax, ecx
mov eax, 0
sbb eax, ebx
jb 0x411204
mov edi, dword [esp + 0x24]
mov eax, 0x34
mov esi, dword [esp + 0x20]
or edi, 0x100000
sub eax, ecx
mov dword [esp + 0x38], esi
mov ecx, eax
mov dword [esp + 0x3c], edi
xor eax, eax
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmovne esi, edi
cmovne edi, eax
xor ebx, ebx
mov eax, esi
mov edx, edi
shl eax, cl
shld edx, esi, cl
and cl, 0x20
cmovne edx, eax
cmovne eax, ebx
cmp dword [esp + 0x3c], edx
je 0x4114c0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
lea ebx, [esp + 0x130]
mov ecx, dword [esp + 0x24]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x20]
call fcn.00415980
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
mov edx, dword [esp + 0x138]
xor ecx, ecx
shr ebp, 0x1f
mov dword [esp], edx
lea eax, [esp + 0x124]
mov dword [esp + 0xc], ecx
mov edx, esi
mov ecx, edi
mov dword [esp + 8], 0x12
mov dword [esp + 4], ebp
call fcn.0040deb0
mov esi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
mov eax, ebx
mov edx, dword [esp + 0x124]
call fcn.0040e2d0
cmp esi, 0xfa1d05ee
jne 0x410f7d
mov dword [esp], 1
mov esi, str.double_string.free___detected_n
mov ebx, 0x1e
call dword [0x42489c]
mov edi, eax
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add esi, eax
test ebx, ebx
jg 0x4112a7
jmp 0x410f7d
mov eax, 4
mov ebx, 3
mov esi, 0x4264da
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fc51
mov dword [esp + 0x20], eax
call fcn.0040bf20
mov eax, dword [esp + 0x20]
jmp 0x411109
mov byte [edx + ebx], 0
cmp ebp, 0xfa1d05ee
jne 0x40e919
mov dword [esp + 0x20], edx
call fcn.0040bf20
test ebx, ebx
mov edx, dword [esp + 0x20]
je 0x40e919
test ebx, ebx
jg 0x40f9d4
jmp 0x40e919
mov byte [ebp + ebx], 0
cmp dword [esp + 0x20], 0xfa1d05ee
je 0x4115ed
test ebx, ebx
je 0x40e919
jmp 0x40fb93
call fcn.0040bf20
jmp 0x40fb93
mov esi, 0xf
jmp 0x40f2ec
mov esi, 0xd
jmp 0x40f2ec
mov esi, 0xe
jmp 0x40f2ec
mov esi, 0xb
jmp 0x40f2ec
mov esi, 0xc
jmp 0x40f2ec
mov eax, 5
mov ebx, 4
mov esi, str._0.0
call fcn.004118b0
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x40fc51
mov esi, 9
jmp 0x40f2ec
mov esi, 0xa
jmp 0x40f2ec
mov ecx, ebp
mov edx, edi
mov eax, esi
call fcn.00411aa0
mov edi, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
cmp ebx, 0xfa1d05ee
jne 0x410efb
call fcn.0040bf20
mov ebx, esi
jmp 0x410db9
mov dword [esp + 0x20], edx
call fcn.0040bf20
mov edx, dword [esp + 0x20]
jmp 0x411326
call fcn.0040bf20
jmp 0x41103b
lea edi, [esp + 0x148]
mov ecx, 0xa
lea edx, [esp + 0x130]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x124]
xor edi, edi
mov dword [esp + 0x130], str.malloc_noscan_
mov dword [esp + 0x134], 0xe
mov dword [esp + 0x138], 1
mov dword [esp + 0x13c], 0xfe09
mov dword [esp + 0x140], 2
mov dword [esp + 0x144], edi
mov dword [esp + 0x150], str.__failed
mov dword [esp + 0x154], 8
mov dword [esp + 0x158], 1
call fcn.00411640
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
call fcn.00411770
call fcn.0040bf20
jmp 0x41116b
cmp dword [esp + 0x38], eax
jne 0x411204
xor eax, eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.004219a0
test edx, edx
je 0x411587
xor edx, edx
lea ebx, [esp + 0x130]
jmp 0x41123e
call fcn.0040bf20
jmp 0x410fdc
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
test edx, edx
jne 0x411514
test eax, eax
je 0x411523
mov ecx, 3
mov edx, 0x426519
jmp 0x410f71
mov ecx, 4
mov edx, str._inf
test ebp, ebp
js 0x410f71
mov edx, str.inf
jmp 0x410f71
call fcn.0040bf20
jmp 0x4110c6
mov dword [esp], 1
mov esi, str.double_string.free___detected_n
mov ebx, 0x1e
call dword [0x42489c]
mov edi, eax
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add esi, eax
test ebx, ebx
jg 0x411562
jmp 0x410e22
test eax, eax
jne 0x4114ec
mov ebx, 1
xor eax, eax
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
call fcn.00421880
mov dword [esp + 8], 0xa
mov esi, eax
xor eax, eax
mov dword [esp + 4], edx
mov edi, edx
mov dword [esp + 0xc], eax
mov dword [esp], esi
mov dword [esp + 0x20], ebx
add ebx, 1
call fcn.004219a0
test edx, edx
je 0x4115e7
mov edx, dword [esp + 0x20]
lea ebx, [esp + 0x130]
jmp 0x41123e
test eax, eax
je 0x411594
jmp 0x4115d7
call fcn.0040bf20
jmp 0x411346
mov ecx, 6
mov edx, str._0e00
jmp 0x410f71
mov eax, dword [esp + 0x30]
mov edx, 0x30
mov byte [eax + esi], 0
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x40f0e9
call fcn.0040bf20
jmp 0x410e65
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov edx, esi
call fcn.004126d0
jmp 0x40fa88