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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x11c
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x30], edx
mov ebp, ecx
and ebp, 0x1f
je 0x4040fd
mov ebx, ecx
mov esi, ecx
mov byte [esp + 0xc0], 1
shr ebx, 0x1b
mov dword [esp + 0xc4], 1
mov dword [esp + 0xc8], 0
mov edx, ebx
and edx, 0xf
lea ebx, [edx + 2]
test edx, edx
cmovne edx, ebx
mov ebx, ecx
shr ebx, 0x1f
cmp ebx, 1
mov dword [esp + 0x40], ebx
sbb edi, edi
shr esi, 0x11
mov ebx, edi
mov edi, esi
and di, 0x3ff
and ebx, 0xfffffff0
movsx esi, di
add ebx, 0x30
mov word [esp + 0x54], di
test di, di
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x38]
mov esi, 0xffffffff
mov byte [esp + 0x48], bl
mov byte [esp + 0xb4], bl
cmove edi, esi
mov dword [esp + 0x60], edi
mov edi, ecx
shr edi, 9
and edi, 0x7f
cmp edi, 0x7f
cmovne esi, edi
mov dword [esp + 0x64], esi
mov esi, ecx
shr esi, 8
mov ebx, esi
mov esi, ecx
shr esi, 0x10
mov byte [esp + 0xc1], bl
and byte [esp + 0xc1], 1
and esi, 1
mov ebx, esi
mov byte [esp + 0xcc], bl
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x404110
mov dword [esp + 0xc4], 0
mov ebx, dword [esp + 0x30]
and ecx, 0x80
cmp ebp, 0x10
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebx
mov ebx, eax
je 0x4041a0
cmp ebp, 0x12
je 0x404230
lea eax, [ebp - 3]
and eax, 0xfffffffd
jne 0x404120
cmp ebp, 3
je 0x404450
cmp ebp, 5
je 0x404800
cmp ebp, 7
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
je 0x404810
test edx, edx
jne 0x4042b0
cmp word [esp + 0x54], 0
je 0x404820
test edi, edi
js 0x404af0
mov ecx, dword [esp + 0x5c]
mov ebx, edi
sar ebx, 0x1f
mov ebp, ebx
xor edi, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xb4]
xor ebp, esi
mov eax, ebp
mov edx, edi
sub eax, ebx
mov dword [esp], ecx
mov ecx, dword [esp + 0x60]
sbb edx, ebx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
call fcn.00408940
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
test cl, 0x20
je 0x404028
jmp 0x40401d
lea eax, [ebp - 7]
and eax, 0xfffffffd
je 0x40405a
lea eax, [ebp - 2]
and eax, 0xfffffffd
jne 0x404480
cmp ebp, 2
je 0x404b60
cmp ebp, 4
je 0x404ba5
cmp ebp, 6
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
je 0x404bed
test edx, edx
jne 0x404a70
cmp word [esp + 0x54], 0
jne 0x404bf7
mov eax, edi
mov dword [esp + 0x58], 0x4221d1
mov ebx, 1
or eax, esi
jne 0x40529a
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, ebx
call fcn.0041a3a0
jmp 0x4040fd
mov eax, dword [eax + 0x10]
test ecx, ecx
mov dword [esp], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 8], eax
lea eax, [esp + 0x84]
je 0x404430
call fcn.00409d40
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
cmp word [esp + 0x54], 0
jne 0x4047a0
cmp edx, 0
je 0x404210
jle 0x404210
test eax, eax
je 0x404210
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x5c]
call fcn.0041a3a0
jmp 0x404210
cmp ebx, 0xfa1d05ee
je 0x4042a5
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp word [esp + 0x54], 0
je 0x4040fd
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [ebx + 0x14]
test edx, edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 8], eax
lea eax, [esp + 0x90]
jne 0x404460
call fcn.00409dd0
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
test esi, esi
mov edx, dword [esp + 0x38]
setle cl
test edi, edi
sete al
or eax, ecx
test esi, esi
je 0x404299
test al, al
je 0x404bb0
cmp ebp, 0xfa1d05ee
jne 0x4040fd
call fcn.0041a980
jmp 0x4040fd
mov eax, edi
shr eax, 0x1f
cmp edx, 3
je 0x404a30
test al, al
je 0x4044c0
cmp byte [esp + 0x48], 0x20
je 0x4044c0
neg esi
lea eax, [edx - 2]
adc edi, 0
neg edi
cmp eax, 0x22
ja 0x405cde
mov dword [esp + 0x38], edx
sar edx, 0x1f
mov byte [esp + 0x6e], 1
mov dword [esp + 0x3c], edx
test edi, edi
mov byte [esp + 0x6f], 0
js 0x404b40
xor ebx, ebx
mov dword [esp + 0x40], 0x4221d0
jmp 0x404318
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0041cf20
add eax, dword [0x42875c]
xor edx, edx
movzx ebp, byte [eax]
mov eax, 2
call fcn.004194f0
test eax, eax
mov edx, eax
je 0x405a25
mov eax, ebp
mov byte [edx + 1], 0
mov dword [esp + 0x48], edx
mov byte [edx], al
lea eax, [ebx + 1]
mov dword [esp + 0x30], eax
lea eax, [ebx + 2]
mov dword [esp + 0x68], eax
call fcn.0040e400
mov edx, dword [esp + 0x48]
mov ebp, eax
mov ecx, dword [esp + 0x40]
movzx eax, byte [edx]
mov byte [ebp], al
lea eax, [ebp + 1]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov byte [ebp + ebx + 1], 0
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0041cde0
mov esi, eax
mov eax, edx
mov edi, edx
or eax, esi
jne 0x404310
xor esi, esi
cmp byte [esp + 0x6f], 0
jne 0x404b00
mov eax, dword [esp + 0x58]
mov ebx, esi
mov edi, ebp
test eax, eax
jne 0x404a00
cmp byte [esp + 0x6e], 0
jne 0x4049d0
cmp word [esp + 0x54], 0
jne 0x404970
mov eax, dword [esp + 0x30]
cmp eax, 0
je 0x404210
jle 0x404210
test edi, edi
je 0x404210
mov ecx, eax
mov eax, dword [esp + 0x5c]
mov edx, edi
call fcn.0041a3a0
jmp 0x404210
call fcn.00409dd0
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
jmp 0x4041dd
movsx ecx, byte [ebx + 0x10]
mov edi, ecx
mov esi, ecx
sar edi, 0x1f
jmp 0x40407b
call fcn.00409d40
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
jmp 0x40427d
lea eax, [ebp - 6]
and eax, 0xfffffffd
je 0x404138
cmp ebp, 0x11
je 0x4053d1
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x404c53
cmp edi, 0x7f
jne 0x404c53
cmp ebp, 0x13
ja case.0x4053b9.0
jmp dword [ebp*4 + 0x422258]
lea eax, [edx - 2]
cmp eax, 0x22
ja 0x405cde
mov eax, edi
or eax, esi
jne 0x404b90
mov esi, 1
mov dword [esp + 0x30], 1
mov ebp, 0x4221d1
mov byte [esp + 0x6e], 0
jmp 0x4043d1
fld qword [ebx + 0x10]
lea ebp, [esp + 0xd0]
fstp qword [esp]
mov eax, ebp
call fcn.0041d4a4
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0xd8]
test eax, eax
jne 0x40456b
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
cmp ecx, 0
je 0x404210
jle 0x404210
test edx, edx
je 0x404210
mov eax, dword [esp + 0x5c]
call fcn.0041a3a0
jmp 0x404210
fld dword [ebx + 0x10]
lea ebp, [esp + 0xd0]
fstp dword [esp]
mov eax, ebp
call fcn.0041d408
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xd8]
test edx, edx
je 0x404515
mov ecx, 3
mov edi, esp
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x70]
mov edi, ebp
mov eax, edx
mov dword [esp + 0x30], edx
call fcn.00409d40
mov edx, dword [esp + 0x30]
mov ecx, 3
cmp ebx, 0xfa1d05ee
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xd8]
je 0x405d4a
mov ebx, edi
mov edx, esi
jmp 0x40451c
mov ebx, dword [ebx + 0x10]
mov eax, 5
call fcn.0040e400
cmp ebx, 0x7f
jle 0x405547
cmp ebx, 0x7ff
jg 0x4058c4
mov edx, ebx
mov ecx, 2
sar edx, 6
or edx, 0xffffffc0
mov byte [eax], dl
mov edx, ebx
and edx, 0x3f
or edx, 0xffffff80
mov byte [eax + 1], dl
mov byte [eax + ecx], 0
mov edx, eax
mov eax, dword [esp + 0x5c]
call fcn.0041a3a0
jmp 0x4040fd
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], 1
mov edx, 0x4221d1
mov esi, eax
mov ebx, eax
sar esi, 0x1f
or eax, esi
jne 0x405553
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
call fcn.0041a3a0
jmp 0x4040fd
fld dword [ebx + 0x10]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x40464b
je 0x405ac3
fldz
lea esi, [esp + 0xa8]
fucompi st(1)
fld st(0)
fchs
fcmovbe st(0), st(1)
fld dword [0x422348]
fxch st(2)
fstp dword [esp]
fucomi st(1)
fstp st(1)
jb 0x40467f
fld dword [0x42234c]
fucompi st(1)
fstp st(0)
ja 0x405c5e
jmp 0x404681
fstp st(0)
mov edx, 8
mov eax, esi
call fcn.0041da90
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
cmp dword [esp + 0x58], 0
jne 0x405c7f
test edi, edi
je 0x404210
test edi, edi
jle 0x404210
test edx, edx
je 0x404210
mov eax, dword [esp + 0x5c]
mov ecx, edi
call fcn.0041a3a0
jmp 0x404210
fld qword [ebx + 0x10]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x4046e8
je 0x405ae4
fldz
lea ebp, [esp + 0xd0]
fucompi st(1)
fld st(0)
fchs
fcmovbe st(0), st(1)
fld qword [0x422368]
fxch st(2)
fstp qword [esp]
fucomi st(1)
fstp st(1)
jb 0x40471c
fld dword [0x42234c]
fucompi st(1)
fstp st(0)
ja 0x405c3d
jmp 0x40471e
fstp st(0)
mov edx, 0x11
mov eax, ebp
call fcn.00418b30
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
cmp dword [esp + 0x58], 0
jne 0x405d58
test esi, esi
je 0x404210
test esi, esi
jle 0x404210
test edx, edx
je 0x404210
mov eax, dword [esp + 0x5c]
mov ecx, esi
call fcn.0041a3a0
jmp 0x404210
mov eax, dword [esp + 0x5c]
mov ecx, 0xc
mov edx, str.ERROR_
call fcn.0041a3a0
jmp 0x4040fd
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
mov ecx, ebx
call fcn.00417220
jmp 0x404210
movsx ecx, word [ebx + 0x10]
mov edi, ecx
mov esi, ecx
sar edi, 0x1f
jmp 0x40407b
mov ecx, dword [ebx + 0x10]
mov edi, ecx
mov esi, ecx
sar edi, 0x1f
jmp 0x40407b
mov eax, edi
or eax, esi
je 0x404b80
mov edx, dword [0x42874c]
mov eax, dword [0x428748]
xor edx, edi
xor eax, esi
or edx, eax
je 0x405260
mov eax, 0x15
call fcn.0040e400
test edi, edi
mov ebp, eax
mov byte [esp + 0x54], 0
js 0x4053c0
cmp edi, 0
mov byte [ebp + 0x14], 0
jl 0x405480
jle 0x405477
mov ebx, 0x13
mov dword [esp + 0x38], ebp
jmp 0x404882
mov ebx, ecx
mov dword [esp], esi
mov dword [esp + 4], edi
xor ebp, ebp
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
call fcn.0041cde0
imul ecx, eax, 0xffffff9c
mov dword [esp + 0x30], eax
add esi, ecx
mov ecx, dword [0x428750]
lea edi, [esi + esi]
movzx ecx, byte [ecx + esi*2]
mov esi, dword [esp + 0x38]
add edi, 1
adc ebp, 0
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebp
mov byte [esi + ebx], cl
lea ecx, [ebx - 1]
mov dword [esp + 0x40], ecx
mov ecx, dword [0x428750]
add ecx, edi
mov edi, edx
movzx ecx, byte [ecx]
mov byte [esi + ebx - 1], cl
mov esi, eax
or eax, edx
lea ecx, [ebx - 2]
jne 0x404880
cmp dword [esp + 0x4c], 0
mov ebp, dword [esp + 0x38]
jle 0x405461
cmp byte [esp + 0x54], 0
je 0x40526f
mov ecx, dword [esp + 0x40]
mov eax, 0x15
mov ebx, 0x14
sub ecx, 1
lea edx, [ebp + ecx]
sub eax, ecx
sub ebx, ecx
mov byte [edx], 0x2d
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebp
call sub.msvcrt.dll_memmove
cmp ebx, 0
je 0x4040fd
jle 0x4040fd
jmp 0x404950
mov eax, dword [esp + 0x5c]
mov ecx, ebx
mov edx, ebp
call fcn.0041a3a0
jmp 0x4040fd
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x30]
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x18], eax
mov eax, edi
call fcn.00417220
jmp 0x404210
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x83]
mov byte [esp + 0x83], 0x2d
call fcn.0040e5c0
sub dword [esp + 0x60], 1
jmp 0x4043ec
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], eax
lea eax, [esp + 0x70]
call fcn.00409d40
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x30], eax
jmp 0x4043e1
test al, al
je 0x404b70
cmp byte [esp + 0x48], 0x20
je 0x404b70
neg esi
mov dword [esp + 0x38], 2
mov dword [esp + 0x3c], 0
adc edi, 0
mov byte [esp + 0x6e], 1
neg edi
jmp 0x4042f4
cmp edx, 3
mov eax, 2
mov ecx, edi
cmove edx, eax
lea eax, [esp + 0xd0]
mov dword [esp], edx
mov edx, esi
call fcn.00407790
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0xd8]
test eax, eax
jne 0x4051ff
mov eax, dword [esp + 0xd0]
mov ebx, esi
cmp word [esp + 0x54], 0
jne 0x405190
mov ecx, dword [esp + 0xd4]
cmp ecx, 0
je 0x404210
jle 0x404210
test eax, eax
je 0x404210
mov edx, eax
mov eax, dword [esp + 0x5c]
call fcn.0041a3a0
jmp 0x404210
mov byte [esp + 0xc0], 0
jmp 0x404097
lea eax, [ebx + 3]
call fcn.0040e400
mov ecx, dword [esp + 0x30]
mov byte [eax], 0x2d
mov ebx, eax
lea eax, [eax + 1]
mov dword [esp + 4], ebp
mov ebp, ebx
mov dword [esp + 8], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x68]
mov byte [ebx + eax], 0
mov dword [esp + 0x30], eax
jmp 0x4043d1
neg esi
mov byte [esp + 0x6f], 1
adc edi, 0
neg edi
jmp 0x404301
movzx esi, byte [ebx + 0x10]
xor edi, edi
jmp 0x404159
mov edx, 2
jmp 0x4044cc
mov ebx, 1
mov ebp, 0x4221d1
jmp 0x404950
mov dword [esp + 0x38], edx
sar edx, 0x1f
mov byte [esp + 0x6e], 0
mov dword [esp + 0x3c], edx
jmp 0x4042f4
movzx esi, word [ebx + 0x10]
xor edi, edi
jmp 0x404159
lea eax, [edx + 1]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x5c]
mov ebx, 1
mov dword [esp + 0x30], eax
lea esi, [esi]
lea edi, [edi]
mov ecx, esi
mov edx, edi
mov eax, ebp
call fcn.0041a3a0
add ebx, 1
cmp ebx, dword [esp + 0x30]
jne 0x404bd0
mov ebp, dword [esp + 0x38]
jmp 0x404299
mov esi, dword [ebx + 0x10]
xor edi, edi
jmp 0x404159
mov eax, dword [esp + 0x5c]
mov edx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x18], eax
mov eax, esi
call fcn.00408940
jmp 0x4040fd
cmp dword [esp + 0x64], 0xffffffff
jne 0x4053b0
cmp ebp, 0x13
ja case.0x4053b9.0
jmp dword [ebp*4 + 0x4222a8]
fld qword [ebx + 0x10]
fldz
fucompi st(1)
ja 0x4058aa
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x60]
lea ebx, [esp + 0xd0]
mov dword [esp + 0xbc], 6
mov dword [esp + 0x10], 6
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
fstp qword [esp]
mov eax, ebx
call fcn.00407a80
mov esi, dword [esp + 0x58]
mov ebp, dword [esp + 0xd8]
test esi, esi
jne 0x404f72
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
cmp ecx, 0
je 0x404299
jle 0x404299
test edx, edx
je 0x404299
mov eax, dword [esp + 0x5c]
call fcn.0041a3a0
jmp 0x404299
fld dword [ebx + 0x10]
fldz
fucompi st(1)
ja 0x405a07
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x60]
lea ebx, [esp + 0xd0]
mov dword [esp + 0xbc], 6
mov dword [esp + 0x10], 6
fstp qword [esp]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
jmp 0x404cde
mov dword [esp + 0x64], 3
fld qword [ebx + 0x10]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x404dbb
je 0x40548d
fld dword [0x422370]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x404dcf
je 0x40583c
fld dword [0x422374]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x404de3
je 0x405975
lea ebp, [esp + 0xb4]
fld dword [0x422378]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x404e66
jne 0x404e66
fstp st(0)
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x58], 0
mov edx, str._INF
mov eax, 0x4221e1
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 1
mov edi, esp
mov esi, ebp
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x64]
cmovne eax, edx
mov edx, 4
mov dword [esp + 0xd0], eax
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov ecx, 1
call fcn.00417220
fld qword [ebx + 0x10]
fldz
fucompi st(1)
ja 0x405b01
ja 0x405b09
fld st(0)
mov eax, dword [esp + 0x60]
fld dword [0x42235c]
lea ebx, [esp + 0xd0]
lea edi, [esp + 8]
mov ecx, 7
mov esi, ebp
fucompi st(1)
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
jbe 0x404ebe
fld qword [0x422380]
fxch st(1)
fucompi st(1)
fstp st(0)
jae 0x405161
jmp 0x404ec0
fstp st(0)
rep movsd dword es:[edi], dword [esi]
jmp 0x404cdb
mov dword [esp + 0x64], 3
fld qword [ebx + 0x10]
fst qword [esp + 0x30]
fldz
fucompi st(1)
fstp st(0)
ja 0x4059fa
mov eax, dword [esp + 0x34]
add eax, 0x80000000
or eax, dword [esp + 0x30]
je 0x4059ed
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x60]
lea ebx, [esp + 0xd0]
mov edi, dword [esp + 0x64]
fld qword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
fstp qword [esp]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
mov eax, ebx
call fcn.00408080
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0xd8]
test edi, edi
je 0x404cf8
mov esi, ebx
mov ecx, 3
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x70]
mov edi, ebx
mov eax, edx
mov dword [esp + 0x30], edx
call fcn.00409d40
mov edx, dword [esp + 0x30]
mov ecx, 3
cmp ebp, 0xfa1d05ee
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0xd8]
je 0x405e5b
mov ebp, esi
mov edx, ebx
jmp 0x404cff
mov dword [esp + 0x64], 3
fld dword [ebx + 0x10]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x404fd9
je 0x405491
fld dword [0x422350]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x404fed
je 0x405840
fld dword [0x422354]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x405001
je 0x4058fd
lea ebp, [esp + 0xb4]
fld dword [0x422358]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x405084
jne 0x405084
fstp st(0)
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x58], 0
mov edx, str._INF
mov eax, 0x4221e1
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 1
mov edi, esp
mov esi, ebp
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x64]
cmovne eax, edx
mov edx, 4
mov dword [esp + 0xd0], eax
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov ecx, 1
call fcn.00417220
fld dword [ebx + 0x10]
fldz
fucompi st(1)
ja 0x405a14
ja 0x405a1c
fld st(0)
mov eax, dword [esp + 0x60]
fld dword [0x42235c]
lea ebx, [esp + 0xd0]
lea edi, [esp + 8]
mov ecx, 7
mov esi, ebp
fucompi st(1)
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
jbe 0x4050dc
fld dword [0x422360]
fxch st(1)
fucompi st(1)
fstp st(0)
jae 0x405b86
jmp 0x4050de
fstp st(0)
rep movsd dword es:[edi], dword [esi]
fstp qword [esp]
jmp 0x404cde
mov dword [esp + 0x64], 3
fld dword [ebx + 0x10]
fldz
fucompi st(1)
ja 0x4058b7
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x60]
lea ebx, [esp + 0xd0]
mov edi, dword [esp + 0x64]
fstp qword [esp]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
jmp 0x404f58
rep movsd dword es:[edi], dword [esi]
fstp qword [esp]
mov eax, ebx
call fcn.00408080
cmp dword [esp + 0x58], 0
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xd8]
je 0x404cff
jmp 0x404f72
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], ebx
mov dword [esp], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 8], ecx
mov ecx, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xd4]
call fcn.00417220
jmp 0x404210
mov eax, dword [esp + 0xd0]
mov dword [esp + 8], esi
mov dword [esp], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], eax
lea eax, [esp + 0x70]
call fcn.00409d40
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
cmp esi, 0xfa1d05ee
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], ebx
jne 0x404aaa
mov dword [esp + 0x30], eax
call fcn.0041a980
mov eax, dword [esp + 0x30]
jmp 0x404aaa
mov ebx, 0x14
mov ebp, str._9223372036854775808
jmp 0x404950
mov ecx, dword [esp + 0x40]
mov eax, 0x15
mov ebx, 0x14
mov dword [esp], ebp
sub eax, ecx
sub ebx, ecx
mov dword [esp + 8], eax
lea eax, [ebp + ecx]
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
jmp 0x404932
mov eax, 0x15
mov ebp, 0x13
call fcn.0040e400
mov byte [eax + 0x14], 0
mov dword [esp + 0x58], eax
add eax, 0x13
mov dword [esp + 0x38], eax
jmp 0x4052c2
mov ebp, edx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
call fcn.0041d0e0
mov ebx, eax
mov dword [esp + 0x30], eax
mov ecx, edx
imul eax, edx, 0x64
mov dword [esp + 0x40], eax
mov eax, 0x64
mul ebx
add edx, dword [esp + 0x40]
sub esi, eax
mov eax, dword [esp + 0x38]
sbb edi, edx
mov edx, dword [0x428750]
shld edi, esi, 1
add esi, esi
add edx, esi
add esi, 1
movzx edx, byte [edx]
adc edi, 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
lea edi, [eax - 2]
mov dword [esp + 0x38], edi
mov edi, ecx
mov byte [eax], dl
lea edx, [ebp - 1]
mov dword [esp + 0x48], edx
lea edx, [eax - 1]
mov dword [esp + 0x54], edx
mov edx, dword [0x428750]
add edx, esi
mov esi, ebx
or ebx, ecx
movzx edx, byte [edx]
mov byte [eax - 1], dl
lea edx, [ebp - 2]
jne 0x4052c0
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
cmp ebx, 0
ja 0x405365
cmp ecx, 0x13
jbe 0x40536d
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov edx, 0x15
sub edx, ebp
mov ebx, 0x14
sub ebx, ebp
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_memmove
cmp ebx, 0
je 0x4040fd
jle 0x4040fd
jmp 0x404184
cmp ebp, 0x13
ja case.0x4053b9.0
jmp dword [ebp*4 + 0x4222f8]
neg esi
mov byte [esp + 0x54], 1
adc edi, 0
neg edi
jmp 0x40485a
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
lea ebp, [esp + 0xd0]
mov dword [esp], 0x10
mov eax, ebp
call fcn.00407790
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0xd8]
test eax, eax
jne 0x4054fb
mov eax, dword [esp + 0xd0]
cmp word [esp + 0x54], 0
je 0x404ab6
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xd0], eax
lea esi, [esp + 0xb4]
mov dword [esp + 0xd8], ebx
mov edi, esp
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov edx, dword [esp + 0xd4]
call fcn.00417220
jmp 0x404210
jl 0x40546e
cmp dword [esp + 0x48], 0x13
ja 0x4048fb
mov dword [esp + 0x40], ebx
jmp 0x4048fb
cmp esi, 0
ja 0x40486d
mov dword [esp + 0x40], 0x15
jmp 0x4048fb
fstp st(0)
jmp 0x405493
fstp st(0)
mov eax, dword [esp + 0x60]
mov dword [esp + 0xd4], 1
lea esi, [esp + 0xb4]
mov dword [esp + 0xd0], 0x4221d1
mov dword [esp + 0xd8], 1
mov edi, esp
mov ecx, 7
mov edx, 1
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, 0x4221d1
rep movsd dword es:[edi], dword [esi]
mov ecx, 1
call fcn.00417220
jmp 0x4040fd
mov ecx, 3
mov edi, esp
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x70]
mov edi, ebp
mov eax, edx
mov dword [esp + 0x30], edx
call fcn.00409d40
mov edx, dword [esp + 0x30]
mov ecx, 3
cmp ebx, 0xfa1d05ee
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xd8]
je 0x405b78
mov ebx, edi
mov eax, esi
jmp 0x405406
mov byte [eax], bl
mov ecx, 1
jmp 0x4045f3
lea ebp, [esp + 0xd0]
mov edx, ebx
xor eax, eax
and edx, 0xf
mov ecx, 0x11
mov edi, ebp
cmp dl, 0xa
rep stosb byte es:[edi], al
lea ecx, [edx + 0x57]
lea eax, [edx + 0x30]
mov edx, esi
cmovae eax, ecx
shr edx, 4
mov byte [esp + 0xdf], al
mov eax, ebx
mov ecx, edx
shrd eax, esi, 4
or ecx, eax
je 0x405e15
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, esi
mov byte [esp + 0xde], al
mov eax, ebx
shr edx, 8
shrd eax, esi, 8
mov ecx, edx
or ecx, eax
je 0x405e0b
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, esi
mov byte [esp + 0xdd], al
mov eax, ebx
shr edx, 0xc
shrd eax, esi, 0xc
mov ecx, edx
or ecx, eax
je 0x405e01
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, esi
mov byte [esp + 0xdc], al
mov eax, ebx
shr edx, 0x10
shrd eax, esi, 0x10
mov ecx, edx
or ecx, eax
je 0x405df7
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, esi
mov byte [esp + 0xdb], al
mov eax, ebx
shr edx, 0x14
shrd eax, esi, 0x14
mov ecx, edx
or ecx, eax
je 0x405ded
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, esi
mov byte [esp + 0xda], al
mov eax, ebx
shr edx, 0x18
shrd eax, esi, 0x18
mov ecx, edx
or ecx, eax
je 0x405de3
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, esi
mov byte [esp + 0xd9], al
mov eax, ebx
shr edx, 0x1c
shrd eax, esi, 0x1c
mov ecx, edx
or ecx, eax
je 0x405dd9
and eax, 0xf
mov ebx, esi
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
xor esi, esi
mov edi, esi
mov byte [esp + 0xd8], al
mov esi, ebx
mov eax, edi
or eax, ebx
je 0x405dcf
mov edx, ebx
and edx, 0xf
lea ecx, [edx + 0x57]
lea eax, [edx + 0x30]
cmp dl, 0xa
cmovae eax, ecx
shrd esi, edi, 4
shr edi, 4
mov byte [esp + 0xd7], al
mov eax, edi
or eax, esi
je 0x405e3d
mov edx, esi
and edx, 0xf
lea ecx, [edx + 0x57]
lea eax, [edx + 0x30]
cmp dl, 0xa
mov edx, edi
cmovae eax, ecx
shr edx, 4
mov byte [esp + 0xd6], al
mov eax, esi
mov ecx, edx
shrd eax, edi, 4
or ecx, eax
je 0x405e33
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, edi
mov byte [esp + 0xd5], al
mov eax, esi
shr edx, 8
shrd eax, edi, 8
mov ecx, edx
or ecx, eax
je 0x405e29
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, edi
mov byte [esp + 0xd4], al
mov eax, esi
shr edx, 0xc
shrd eax, edi, 0xc
mov ecx, edx
or ecx, eax
je 0x405e1f
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, edi
mov byte [esp + 0xd3], al
mov eax, esi
shr edx, 0x10
shrd eax, edi, 0x10
mov ecx, edx
or ecx, eax
je 0x405e51
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, edi
mov byte [esp + 0xd2], al
mov eax, esi
shr edx, 0x14
shrd eax, edi, 0x14
mov ecx, edx
or ecx, eax
je 0x405e47
and eax, 0xf
lea ecx, [eax + 0x57]
lea edx, [eax + 0x30]
cmp al, 0xa
mov eax, ecx
cmovb eax, edx
mov edx, edi
mov byte [esp + 0xd1], al
mov eax, esi
shr edx, 0x18
shrd eax, edi, 0x18
mov ecx, edx
or ecx, eax
je 0x405dc5
mov ebx, eax
lea edx, [ebx + 0x30]
lea eax, [ebx + 0x57]
cmp bl, 9
cmovbe eax, edx
xor esi, esi
mov byte [esp + 0xd0], al
mov eax, 0x10
mov ebx, 0x11
sub eax, esi
sub ebx, esi
add esi, ebp
mov dword [esp + 0x30], eax
mov eax, ebx
call fcn.0040e4e0
test eax, eax
mov edi, eax
mov ecx, ebx
mov edx, eax
rep movsb byte es:[edi], byte [esi]
jne 0x404626
call fcn.0041d9d0
fstp st(0)
jmp 0x405842
fstp st(0)
mov eax, dword [esp + 0x60]
mov dword [esp + 0xd4], 2
lea esi, [esp + 0xb4]
mov dword [esp + 0xd0], 0x422247
mov dword [esp + 0xd8], 1
mov edi, esp
mov ecx, 7
mov edx, 2
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, 0x422247
rep movsd dword es:[edi], dword [esi]
mov ecx, 1
call fcn.00417220
jmp 0x4040fd
mov byte [esp + 0xc0], 0
jmp 0x404c7b
mov byte [esp + 0xc0], 0
jmp 0x4050fd
cmp ebx, 0xffff
jg 0x405b90
mov edx, ebx
mov ecx, 3
sar edx, 0xc
or edx, 0xffffffe0
mov byte [eax], dl
mov edx, ebx
sar edx, 6
and edx, 0x3f
or edx, 0xffffff80
mov byte [eax + 1], dl
mov edx, ebx
and edx, 0x3f
or edx, 0xffffff80
mov byte [eax + 2], dl
jmp 0x4045f3
fstp st(0)
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x58], 0
mov edx, str.INF
mov eax, 0x4221d7
lea ebp, [esp + 0xb4]
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 1
mov edi, esp
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x64]
mov esi, ebp
cmovne eax, edx
mov edx, 4
mov dword [esp + 0xd0], eax
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov ecx, 1
call fcn.00417220
fld dword [ebx + 0x10]
jmp 0x405008
fstp st(0)
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x58], 0
mov edx, str.INF
mov eax, 0x4221d7
lea ebp, [esp + 0xb4]
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 1
mov edi, esp
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x64]
mov esi, ebp
cmovne eax, edx
mov edx, 4
mov dword [esp + 0xd0], eax
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov ecx, 1
call fcn.00417220
fld qword [ebx + 0x10]
jmp 0x404dea
mov byte [esp + 0xc0], 0
jmp 0x404ef5
mov byte [esp + 0xc0], 0
jmp 0x404ee2
mov byte [esp + 0xc0], 0
jmp 0x404d38
mov byte [esp + 0xc0], 0
fld st(0)
fchs
jmp 0x405096
lea edi, [esp + 0xd0]
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov dword [esp + 0xd0], 0x42222f
mov dword [esp + 0xd4], 0xe
mov dword [esp + 0xd8], 1
mov dword [esp + 0xdc], 0xfe09
mov dword [esp + 0xe0], 2
mov dword [esp + 0xe4], 0
mov dword [esp + 0xf0], 0x42223e
mov dword [esp + 0xf4], 8
lea edx, [esp + 0xd0]
lea eax, [esp + 0xa8]
mov dword [esp + 0xf8], 1
call fcn.00419690
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
call fcn.0040e2d0
fstp st(0)
cmp dword [esp + 0x58], 0
jne 0x405bd7
mov edi, 3
mov ebx, 1
mov edx, 0x4221d3
jmp 0x4046b5
fstp st(0)
cmp dword [esp + 0x58], 0
jne 0x405b12
mov esi, 3
mov ebx, 1
mov edx, 0x4221d3
jmp 0x404752
mov byte [esp + 0xc0], 0
fld st(0)
fchs
jmp 0x404e78
mov dword [esp + 0xd0], 0x4221d3
mov dword [esp + 0xd4], 3
lea esi, [esp + 0xd0]
mov dword [esp + 0xd8], 1
mov ecx, 3
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ebx, [esp + 0x70]
lea edi, [esp + 0xd0]
mov eax, ebx
mov esi, ebx
call fcn.00409d40
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
jmp 0x40474a
call fcn.0041a980
mov ebx, edi
mov eax, esi
jmp 0x405406
rep movsd dword es:[edi], dword [esi]
fstp qword [esp]
jmp 0x405166
cmp ebx, 0x10ffff
jg 0x4040fd
mov edx, ebx
mov ecx, ebx
sar edx, 0x12
and ecx, 0x3f
or edx, 0xfffffff0
or ecx, 0xffffff80
mov byte [eax], dl
mov edx, ebx
mov byte [eax + 3], cl
sar edx, 0xc
mov ecx, 4
and edx, 0x3f
or edx, 0xffffff80
mov byte [eax + 1], dl
mov edx, ebx
sar edx, 6
and edx, 0x3f
or edx, 0xffffff80
mov byte [eax + 2], dl
jmp 0x4045f3
mov dword [esp + 0xa8], 0x4221d3
mov dword [esp + 0xac], 3
lea esi, [esp + 0xa8]
mov dword [esp + 0xb0], 1
mov ecx, 3
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ebx, [esp + 0x70]
lea edi, [esp + 0xa8]
mov eax, ebx
mov esi, ebx
call fcn.00409d40
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
mov edx, dword [esp + 0xa8]
jmp 0x4046ad
mov eax, ebp
call fcn.0041d370
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
jmp 0x40473f
mov eax, esi
call fcn.0041d3bb
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
jmp 0x4046a2
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], edx
mov ecx, 3
mov dword [esp + 0xb0], ebx
mov edi, esp
lea ebp, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov eax, ebp
mov esi, ebp
lea edi, [esp + 0xa8]
call fcn.00409d40
mov ecx, 3
cmp ebx, 0xfa1d05ee
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
je 0x405d3c
mov ebx, ebp
mov edx, esi
jmp 0x4046ad
lea edi, [esp + 0xd0]
mov ecx, 0x10
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0xd0], 0x422200
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd8], 1
mov dword [esp + 0xdc], 0xfe07
mov dword [esp + 0xe0], edx
mov dword [esp + 0xf0], 0x422210
mov dword [esp + 0xf4], 0x1e
jmp 0x405a8b
call fcn.0041a980
mov ebx, ebp
mov edx, esi
jmp 0x4046ad
call fcn.0041a980
mov ebx, edi
mov edx, esi
jmp 0x40451c
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], esi
mov ecx, 3
mov dword [esp + 0xd8], ebx
mov esi, ebp
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x70]
lea edi, [esp + 0xd0]
mov eax, edx
mov dword [esp + 0x30], edx
call fcn.00409d40
mov edx, dword [esp + 0x30]
mov ecx, 3
cmp ebx, 0xfa1d05ee
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
mov ebp, dword [esp + 0xd8]
je 0x405e69
mov ebx, ebp
mov edx, edi
jmp 0x40474a
mov esi, 1
jmp 0x40580c
mov esi, 8
jmp 0x40580c
mov esi, 9
jmp 0x40580c
mov esi, 0xa
jmp 0x40580c
mov esi, 0xb
jmp 0x40580c
mov esi, 0xc
jmp 0x40580c
mov esi, 0xd
jmp 0x40580c
mov esi, 0xe
jmp 0x40580c
mov esi, 0xf
jmp 0x40580c
mov esi, 4
jmp 0x40580c
mov esi, 5
jmp 0x40580c
mov esi, 6
jmp 0x40580c
mov esi, 7
jmp 0x40580c
mov esi, 2
jmp 0x40580c
mov esi, 3
jmp 0x40580c
call fcn.0041a980
mov ebp, esi
mov edx, ebx
jmp 0x404cff
call fcn.0041a980
mov ebx, ebp
mov edx, edi
jmp 0x40474a