Function at 0x4032e0
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x45c
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 0x100]
shl eax, 5
mov ecx, dword [eax + 0x41b410]
and ecx, 0x3fc000
cmp ecx, 0x64000
jb 0x405b6d
mov al, byte [ebp + 0x1a]
test al, al
jne 0x4059e6
mov edx, dword [ebp + 0x224]
mov al, byte [edx + 0xf]
and al, 0xc0
cmp al, 0xc0
jne 0x4059e6
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x1f4d
mov ecx, ebp
mov dword [esp + 0x58], eax
call fcn.00401690
push eax
push ebp
call fcn.004016d0
mov ecx, dword [ebp + 0x100]
add esp, 8
shl ecx, 5
mov eax, dword [ecx + 0x41b410]
and eax, 0x3fc000
cmp eax, 0x64000
je 0x405175
cmp eax, 0x70000
je 0x405175
cmp eax, 0xd4000
jb 0x403d8e
cmp dword [ebp + 0x154], 0x74
jl 0x4038da
lea ecx, [ebp + 0x650]
mov byte [ebp + 0x651], 8
mov byte [ebp + 0x652], 0
mov byte [ebp + 0x653], 0
mov byte [ecx], 0
mov byte [ebp + 0x654], 0xff
mov byte [ebp + 0x655], 0
mov byte [ebp + 0x656], 0
mov byte [ebp + 0x657], 0x10
mov byte [ebp + 0x658], 0xff
mov byte [ebp + 0x659], 0x10
mov al, 0x20
mov byte [ebp + 0x65a], 0
mov byte [ebp + 0x65b], al
mov byte [ebp + 0x65c], 0xff
mov byte [ebp + 0x65d], al
mov al, 0x30
mov byte [ebp + 0x65e], 0
push 0x12
mov byte [ebp + 0x65f], al
push ecx
mov byte [ebp + 0x660], 0xff
mov ecx, ebp
mov byte [esp + 0x31], 0xfe
mov byte [esp + 0x30], 0xfe
mov byte [ebp + 0x661], al
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov esi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x40349d
mov al, byte [ebp + 0x1c]
test al, al
jne 0x40349d
mov al, byte [ebp + 0x1d]
test al, al
jne 0x40349d
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor eax, eax
cmp ebx, esi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.004027a0
lea ecx, [ebp + 0x250]
push 1
push ecx
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x403445
mov al, byte [ebp + 0x1d]
test al, al
je 0x4034d2
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x4034d2
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov dl, byte [ebp + 0x650]
mov al, byte [ebp + 0x250]
and dl, 0xf
cmp al, dl
je 0x4034f5
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xc8]
lea ecx, [esp + 0x6c]
lea eax, [ebp + 0x253]
mov esi, 8
xor edx, edx
add ecx, 4
mov dh, byte [eax - 1]
mov dl, byte [eax]
add eax, 2
imul edx, edi
mov dword [ecx - 4], edx
dec esi
jne 0x40350a
xor eax, eax
lea ecx, [esp + 0x6c]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x4059e6
inc eax
add ecx, 4
cmp eax, 7
jl 0x403526
mov esi, dword [ebp + 0xdc]
mov edi, dword [esp + 0x6c]
xor ecx, ecx
mov ebx, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ebx
mov edx, esi
cmp edx, edi
jl 0x403563
mov eax, dword [esp + 0x70]
cmp edx, eax
jle 0x4035a0
cmp edx, dword [esp + 0x74]
jl 0x403571
mov eax, dword [esp + 0x78]
cmp edx, eax
jle 0x4035b5
cmp edx, dword [esp + 0x7c]
jl 0x403582
mov eax, dword [esp + 0x80]
cmp edx, eax
jle 0x4035f1
cmp edx, dword [esp + 0x84]
jge 0x403629
inc ebx
add edx, esi
cmp ebx, 0x40
jl 0x403557
mov dword [esp + 0x10], ebx
jmp 0x40366d
imul esi, ebx
sub esi, edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], 0
sub eax, edi
jmp 0x403608
mov ecx, dword [esp + 0x74]
imul esi, ebx
sub eax, ecx
sub esi, ecx
cdq
and edx, 0xff
mov dword [esp + 0x10], ebx
add eax, edx
mov dword [esp + 0x18], 1
mov ecx, eax
mov eax, esi
cdq
sar ecx, 8
idiv ecx
cmp eax, 0xff
jle 0x40366b
mov ecx, 0xff
jmp 0x40366d
imul esi, ebx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x10], ebx
sub esi, ecx
mov dword [esp + 0x18], 2
sub eax, ecx
cdq
and edx, 0xff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
sar ecx, 8
idiv ecx
cmp eax, 0xff
jle 0x40366b
mov ecx, 0xff
jmp 0x40366d
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
imul esi, ebx
sub eax, ecx
sub esi, ecx
cdq
and edx, 0xff
mov dword [esp + 0x10], ebx
add eax, edx
mov dword [esp + 0x18], 3
mov ecx, eax
mov eax, esi
cdq
sar ecx, 8
idiv ecx
cmp eax, 0xff
jle 0x40366b
mov ecx, 0xff
jmp 0x40366d
mov ecx, eax
cmp ebx, 0x10
jl 0x40367a
mov dword [esp + 0x10], 0xf
cmp ecx, 7
jge 0x403686
mov ecx, 7
jmp 0x403693
cmp ecx, 0xfc
jle 0x403693
mov ecx, 0xfc
mov dl, cl
mov al, byte [esp + 0x18]
sub dl, 7
lea esi, [ebp + 0x650]
mov byte [ebp + 0x652], dl
mov dl, cl
sub dl, 6
mov byte [esi], 0
mov byte [ebp + 0x654], dl
mov dl, cl
sub dl, 5
mov byte [ebp + 0x651], 0xc
mov byte [ebp + 0x656], dl
mov dl, cl
sub dl, 4
push 0x1a
mov byte [ebp + 0x658], dl
mov dl, cl
shl al, 4
sub dl, 3
mov byte [ebp + 0x653], al
mov byte [ebp + 0x655], al
mov byte [ebp + 0x657], al
mov byte [ebp + 0x659], al
mov byte [ebp + 0x65a], dl
mov dl, cl
mov byte [ebp + 0x65b], al
sub dl, 2
push esi
mov byte [ebp + 0x65c], dl
mov dl, cl
dec dl
mov byte [ebp + 0x65d], al
mov byte [ebp + 0x65e], dl
mov dl, cl
mov byte [ebp + 0x65f], al
mov byte [ebp + 0x660], cl
inc dl
mov byte [ebp + 0x661], al
mov byte [ebp + 0x662], dl
mov dl, cl
add dl, 2
mov byte [ebp + 0x663], al
mov byte [ebp + 0x664], dl
mov dl, cl
add dl, 3
mov byte [ebp + 0x665], al
mov byte [ebp + 0x666], dl
add cl, 4
mov byte [ebp + 0x667], al
mov byte [ebp + 0x668], cl
mov ecx, ebp
mov byte [ebp + 0x669], al
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov edi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x4037ec
mov al, byte [ebp + 0x1c]
test al, al
jne 0x4037ec
mov al, byte [ebp + 0x1d]
test al, al
jne 0x4037ec
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor ecx, ecx
cmp ebx, edi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x403793
mov al, byte [ebp + 0x1d]
test al, al
je 0x403821
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x403821
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov dl, byte [ebp + 0x650]
mov al, byte [esi]
and dl, 0xf
cmp al, dl
je 0x403840
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xc8]
lea ecx, [esp + 0x6c]
lea eax, [ebp + 0x253]
mov esi, 0xc
xor edx, edx
add ecx, 4
mov dh, byte [eax - 1]
mov dl, byte [eax]
add eax, 2
imul edx, edi
mov dword [ecx - 4], edx
dec esi
jne 0x403855
mov edx, dword [ebp + 0xdc]
or ebx, 0xffffffff
xor esi, esi
imul edx, dword [esp + 0x10]
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x40388b
mov eax, edx
sub eax, ecx
jmp 0x40388f
sub ecx, edx
mov eax, ecx
cmp eax, ebx
jae 0x403899
mov dword [esp + 0x1c], esi
mov ebx, eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x40387f
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + esi*4 + 0x6c]
cdq
idiv ecx
shl cl, 2
mov dword [ebp + 0xfc], eax
mov al, byte [esp + 0x18]
and al, 3
add cl, al
mov byte [ebp + 0x24f], cl
mov al, byte [ebp + esi*2 + 0x652]
mov byte [ebp + 0x24e], al
jmp 0x405941
mov al, 0x66
mov byte [ebp + 0x650], 0
mov byte [esp + 0x29], al
mov byte [esp + 0x28], al
lea eax, [ebp + 0x650]
mov byte [ebp + 0x651], 5
mov byte [ebp + 0x652], 0
mov byte [ebp + 0x653], 0
mov byte [ebp + 0x654], 0x80
mov byte [ebp + 0x655], 0
mov byte [ebp + 0x656], 0
mov byte [ebp + 0x657], 0x80
mov byte [ebp + 0x658], 0x80
mov byte [ebp + 0x659], 0x80
push 0xc
mov byte [ebp + 0x65a], 0xff
push eax
mov ecx, ebp
mov byte [ebp + 0x65b], 0
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov esi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x4039bd
mov al, byte [ebp + 0x1c]
test al, al
jne 0x4039bd
mov al, byte [ebp + 0x1d]
test al, al
jne 0x4039bd
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor edx, edx
cmp ebx, esi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.004027a0
lea eax, [ebp + 0x250]
push 1
push eax
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x403964
mov al, byte [ebp + 0x1d]
test al, al
je 0x4039f2
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x4039f2
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x650]
mov al, byte [ebp + 0x250]
and cl, 0xf
cmp al, cl
je 0x403a15
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov eax, dword [ebp + 0xc8]
xor edx, edx
mov dh, byte [ebp + 0x252]
xor ecx, ecx
mov dl, byte [ebp + 0x253]
mov ch, byte [ebp + 0x254]
imul edx, eax
mov cl, byte [ebp + 0x255]
mov dword [esp + 0x6c], edx
xor edx, edx
imul ecx, eax
mov dh, byte [ebp + 0x256]
mov dword [esp + 0x70], ecx
mov dl, byte [ebp + 0x257]
xor ecx, ecx
imul edx, eax
mov ch, byte [ebp + 0x258]
mov dword [esp + 0x74], edx
mov cl, byte [ebp + 0x259]
xor edx, edx
mov dh, byte [ebp + 0x25a]
imul ecx, eax
mov dl, byte [ebp + 0x25b]
mov dword [esp + 0x78], ecx
imul edx, eax
mov dword [esp + 0x7c], edx
xor eax, eax
lea ecx, [esp + 0x6c]
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
cmp esi, edi
je 0x4059e6
inc eax
add ecx, 4
cmp eax, 3
jl 0x403a8a
mov esi, dword [ebp + 0xdc]
xor ebx, ebx
mov edi, 1
cmp esi, edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], edi
jg 0x403ac6
cmp esi, dword [esp + 0x6c]
jge 0x403acf
lea eax, [esi + esi]
cmp eax, edx
jle 0x403acf
mov ebx, 1
mov dword [esp + 0x10], ebx
mov edx, dword [esp + ebx*8 + 0x6c]
xor ecx, ecx
mov eax, esi
cmp eax, edx
jge 0x403ae9
inc edi
add eax, esi
cmp edi, 0x40
jl 0x403ad7
mov dword [esp + 0x18], edi
jmp 0x403b1a
mov eax, dword [esp + ebx*8 + 0x70]
mov ecx, dword [esp + ebx*8 + 0x6c]
sub eax, ecx
mov dword [esp + 0x18], edi
cdq
and edx, 0x7f
add edx, eax
mov eax, esi
imul eax, edi
sar edx, 7
sub eax, ecx
mov ecx, edx
cdq
idiv ecx
mov ecx, 0xff
cmp eax, 0xff
jg 0x403b1a
mov ecx, eax
cmp edi, 0x10
jl 0x403b27
mov dword [esp + 0x18], 0xf
test ecx, ecx
jne 0x403b32
mov ecx, 1
jmp 0x403b3f
cmp ecx, 0xff
jne 0x403b3f
mov ecx, 0xfe
mov al, bl
mov dl, cl
shl al, 7
mov bl, al
dec dl
inc bl
mov byte [ebp + 0x652], dl
mov byte [ebp + 0x654], dl
mov byte [esp + 0x17], bl
mov byte [ebp + 0x655], bl
mov byte [ebp + 0x656], dl
mov byte [ebp + 0x658], dl
mov bl, al
mov dl, al
lea esi, [ebp + 0x650]
add bl, 2
add dl, 3
mov byte [esi], 0
mov byte [ebp + 0x651], 0xc
mov byte [ebp + 0x653], al
mov byte [ebp + 0x657], bl
mov byte [ebp + 0x659], dl
mov byte [esp + 0x27], dl
mov dl, byte [esp + 0x17]
mov byte [ebp + 0x65a], cl
mov byte [ebp + 0x65b], al
mov byte [ebp + 0x65c], cl
mov byte [ebp + 0x65d], dl
mov dl, byte [esp + 0x27]
mov byte [ebp + 0x65e], cl
mov byte [ebp + 0x65f], bl
mov byte [ebp + 0x660], cl
inc cl
mov byte [ebp + 0x661], dl
mov byte [ebp + 0x662], cl
mov byte [ebp + 0x663], al
mov al, byte [esp + 0x17]
mov byte [ebp + 0x664], cl
mov byte [ebp + 0x665], al
mov byte [ebp + 0x666], cl
mov byte [ebp + 0x667], bl
mov byte [ebp + 0x668], cl
push 0x1a
push esi
mov ecx, ebp
mov byte [ebp + 0x669], dl
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov edi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x403c8b
mov al, byte [ebp + 0x1c]
test al, al
jne 0x403c8b
mov al, byte [ebp + 0x1d]
test al, al
jne 0x403c8b
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor edx, edx
cmp ebx, edi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x403c32
mov al, byte [ebp + 0x1d]
test al, al
je 0x403cc0
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x403cc0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x650]
mov cl, byte [esi]
and al, 0xf
cmp cl, al
je 0x403cde
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xc8]
lea ecx, [esp + 0x6c]
lea eax, [ebp + 0x253]
mov esi, 0xc
xor edx, edx
add ecx, 4
mov dh, byte [eax - 1]
mov dl, byte [eax]
add eax, 2
imul edx, edi
mov dword [ecx - 4], edx
dec esi
jne 0x403cf3
mov edx, dword [ebp + 0xdc]
mov ebx, dword [esp + 0x54]
xor esi, esi
imul edx, dword [esp + 0x18]
mov dword [esp + 0x20], 0xffffffff
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x403d32
mov eax, edx
sub eax, ecx
jmp 0x403d36
sub ecx, edx
mov eax, ecx
cmp eax, dword [esp + 0x20]
jae 0x403d42
mov ebx, esi
mov dword [esp + 0x20], eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x403d26
mov eax, dword [esp + ebx*4 + 0x6c]
mov cl, byte [esp + 0x18]
cdq
idiv dword [esp + 0x18]
mov dword [ebp + 0xfc], eax
mov al, byte [esp + 0x10]
shl al, 5
add al, cl
mov cl, byte [ebp + ebx*2 + 0x653]
shl al, 2
and cl, 3
add al, cl
mov byte [ebp + 0x24f], al
mov dl, byte [ebp + ebx*2 + 0x652]
mov byte [ebp + 0x24e], dl
jmp 0x405941
cmp eax, 0xb4000
je 0x404d2c
cmp eax, 0xb8000
je 0x404d2c
cmp eax, 0xbc000
je 0x404d2c
cmp eax, 0xc0000
je 0x404d2c
cmp eax, 0xc4000
je 0x404d2c
cmp eax, 0xc8000
je 0x404d2c
cmp eax, 0xcc000
je 0x404d2c
cmp eax, 0xd0000
je 0x404d2c
cmp eax, 0xb0000
mov byte [esp + 0x29], 0xfe
mov byte [esp + 0x28], 0xfe
jne 0x404364
lea eax, [ebp + 0x650]
mov byte [ebp + 0x651], 8
mov byte [ebp + 0x652], 0
mov byte [ebp + 0x653], 0
mov byte [eax], 0
mov byte [ebp + 0x654], 0
mov byte [ebp + 0x655], 0x7f
mov byte [ebp + 0x656], 1
mov byte [ebp + 0x657], 0
mov byte [ebp + 0x658], 1
mov byte [ebp + 0x659], 0x7f
mov byte [ebp + 0x65a], 2
mov byte [ebp + 0x65b], 0
mov byte [ebp + 0x65c], 2
mov byte [ebp + 0x65d], 0x7f
mov byte [ebp + 0x65e], 3
mov byte [ebp + 0x65f], 0
push 0x12
mov byte [ebp + 0x660], 3
push eax
mov ecx, ebp
mov byte [ebp + 0x661], 0x7f
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov esi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x403efa
mov al, byte [ebp + 0x1c]
test al, al
jne 0x403efa
mov al, byte [ebp + 0x1d]
test al, al
jne 0x403efa
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor ecx, ecx
cmp ebx, esi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.004027a0
lea edx, [ebp + 0x250]
push 1
push edx
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x403ea1
mov al, byte [ebp + 0x1d]
test al, al
je 0x403f2f
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x403f2f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x650]
mov cl, byte [ebp + 0x250]
and al, 0xf
cmp cl, al
je 0x403f51
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov ebx, dword [ebp + 0xc8]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x253]
mov edi, 8
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x403f66
xor eax, eax
lea ecx, [esp + 0x6c]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x4059e6
inc eax
add ecx, 4
cmp eax, 7
jl 0x403f87
mov edx, dword [ebp + 0xdc]
xor eax, eax
lea ecx, [esp + 0x70]
cmp edx, dword [ecx]
jl 0x403fb6
inc eax
add ecx, 8
cmp eax, 3
jl 0x403fa9
lea ecx, [ebp + 0x650]
mov byte [ebp + 0x651], 9
mov byte [ebp + 0x652], al
mov byte [ebp + 0x653], 0
mov byte [ecx], 0
mov byte [ebp + 0x654], al
mov byte [ebp + 0x655], 0x10
mov byte [ebp + 0x656], al
mov byte [ebp + 0x657], 0x20
mov byte [ebp + 0x658], al
mov byte [ebp + 0x659], 0x30
mov byte [ebp + 0x65a], al
mov byte [ebp + 0x65b], 0x40
mov byte [ebp + 0x65c], al
mov byte [ebp + 0x65d], 0x50
mov byte [ebp + 0x65e], al
mov byte [ebp + 0x65f], 0x60
mov byte [ebp + 0x660], al
push 0x14
mov byte [ebp + 0x661], 0x70
push ecx
mov byte [ebp + 0x662], al
mov ecx, ebp
mov byte [ebp + 0x663], 0x7f
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov edi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x4040ba
mov al, byte [ebp + 0x1c]
test al, al
jne 0x4040ba
mov al, byte [ebp + 0x1d]
test al, al
jne 0x4040ba
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor ecx, ecx
cmp ebx, edi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x404061
mov al, byte [ebp + 0x1d]
test al, al
je 0x4040ef
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x4040ef
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov dl, byte [ebp + 0x650]
mov al, byte [esi]
and dl, 0xf
cmp al, dl
je 0x40410e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xc8]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x253]
mov ebx, 9
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec ebx
jne 0x404123
mov eax, dword [ebp + 0xdc]
mov ecx, 1
lea edx, [esp + 0x70]
cmp eax, dword [edx]
jl 0x40415a
inc ecx
add edx, 4
cmp ecx, 8
jl 0x40414d
mov edx, dword [esp + ecx*4 + 0x68]
mov esi, dword [esp + ecx*4 + 0x6c]
sub eax, edx
sub esi, edx
shl eax, 4
cdq
idiv esi
shl ecx, 4
push 0x14
lea eax, [eax + ecx - 0x10]
mov cl, al
mov dl, al
sub cl, 4
sub dl, 3
mov byte [ebp + 0x653], cl
mov cl, al
mov byte [ebp + 0x655], dl
sub cl, 2
mov dl, al
mov byte [ebp + 0x657], cl
dec dl
mov cl, al
mov byte [ebp + 0x659], dl
inc cl
mov byte [ebp + 0x65b], al
mov byte [ebp + 0x65d], cl
mov dl, al
mov cl, al
add dl, 2
add cl, 3
mov byte [ebp + 0x65f], dl
add al, 4
mov byte [ebp + 0x661], cl
mov byte [ebp + 0x663], al
lea eax, [ebp + 0x650]
mov ecx, ebp
push eax
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov edi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x404250
mov al, byte [ebp + 0x1c]
test al, al
jne 0x404250
mov al, byte [ebp + 0x1d]
test al, al
jne 0x404250
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x4041f8
mov al, byte [ebp + 0x1d]
test al, al
je 0x404285
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x404285
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x650]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
je 0x4042a4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov ebx, dword [ebp + 0xc8]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x253]
mov edi, 9
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x4042b9
mov esi, dword [ebp + 0xdc]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x20], 0xffffffff
xor edx, edx
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp esi, ecx
jl 0x4042f8
mov eax, esi
sub eax, ecx
jmp 0x4042fc
sub ecx, esi
mov eax, ecx
cmp eax, dword [esp + 0x20]
jae 0x404308
mov ebx, edx
mov dword [esp + 0x20], eax
inc edx
add edi, 4
cmp edx, 9
jl 0x4042ec
mov edx, dword [esp + ebx*4 + 0x6c]
mov dword [ebp + 0xfc], edx
mov al, byte [ebp + ebx*2 + 0x652]
mov cl, byte [ebp + 0x1e9]
and al, 3
shl cl, 4
or al, cl
mov byte [ebp + 0x24f], al
mov dl, byte [ebp + ebx*2 + 0x653]
mov byte [ebp + 0x24e], dl
mov al, byte [ebp + 0x1ea]
and al, 3
mov byte [ebp + 0x24c], al
mov cl, byte [ebp + 0x1eb]
and cl, 0x7f
mov byte [ebp + 0x24d], cl
jmp 0x405941
mov byte [ebp + 0x650], 0
mov byte [ebp + 0x651], 0xb
xor ecx, ecx
lea esi, [ebp + 0x652]
mov eax, ecx
mov edi, 3
cdq
idiv edi
test edx, edx
jne 0x40438a
mov byte [esi], dl
cmp edx, 1
jne 0x404392
mov byte [esi], 0x80
cmp edx, 2
jne 0x40439a
mov byte [esi], 0xff
mov edx, dword [ebp + 0x100]
shl edx, 5
mov eax, dword [edx + 0x41b410]
and eax, 0x3fc000
cmp eax, 0x64000
je 0x4043d6
cmp eax, 0x70000
je 0x4043d6
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, 3
sub al, dl
shl al, 6
mov byte [esi + 1], al
jmp 0x4043ea
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
shl dl, 6
mov byte [esi + 1], dl
inc ecx
add esi, 2
cmp ecx, 0xc
jl 0x40437a
lea eax, [ebp + 0x650]
push 0x1a
push eax
mov ecx, ebp
mov byte [ebp + 0x668], 0
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov esi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x40447f
mov al, byte [ebp + 0x1c]
test al, al
jne 0x40447f
mov al, byte [ebp + 0x1d]
test al, al
jne 0x40447f
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor edx, edx
cmp ebx, esi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.004027a0
lea eax, [ebp + 0x250]
push 1
push eax
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x404426
mov al, byte [ebp + 0x1d]
test al, al
je 0x4044b4
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x4044b4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x650]
mov al, byte [ebp + 0x250]
and cl, 0xf
cmp al, cl
je 0x4044d7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov ebx, dword [ebp + 0xc8]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x253]
mov edi, 0xc
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x4044ec
xor eax, eax
lea ecx, [esp + 0x6c]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x4059e6
inc eax
add ecx, 4
cmp eax, 0xb
jl 0x40450d
mov ecx, 8
lea esi, [ebp + 0x650]
lea edi, [ebp + 0x250]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x6c]
lea eax, [edi + edi]
sub eax, esi
mov dword [esp + 0x98], eax
sub eax, ecx
cdq
idiv ecx
cmp eax, 2
jge 0x404582
push 0x1f4e
mov ecx, ebp
call fcn.00401690
push eax
push ebp
call fcn.004016d0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x45c
ret
mov eax, dword [ebp + 0xdc]
mov esi, dword [esp + 0x70]
cmp eax, esi
jg 0x404594
xor ecx, ecx
jmp 0x4045e8
cmp eax, dword [esp + 0x74]
jg 0x4045a1
mov ecx, 1
jmp 0x4045e8
cmp eax, dword [esp + 0x7c]
jg 0x4045ae
mov ecx, 3
jmp 0x4045e8
cmp eax, dword [esp + 0x80]
jg 0x4045be
mov ecx, 4
jmp 0x4045e8
cmp eax, dword [esp + 0x88]
jg 0x4045ce
mov ecx, 6
jmp 0x4045e8
cmp eax, dword [esp + 0x8c]
jg 0x4045de
mov ecx, 7
jmp 0x4045e8
xor ecx, ecx
cmp eax, edi
setg cl
add ecx, 9
mov al, byte [ebp + ecx*2 + 0x253]
mov ebx, 3
mov byte [ebp + 0x65d], al
mov byte [ebp + 0x65b], al
mov byte [ebp + 0x659], al
mov byte [ebp + 0x657], al
mov byte [ebp + 0x655], al
mov byte [ebp + 0x653], al
mov eax, ecx
cdq
idiv ebx
test edx, edx
je 0x404650
mov eax, dword [esp + ecx*4 + 0x6c]
mov ebx, dword [esp + ecx*4 + 0x70]
mov ecx, dword [ebp + 0xdc]
sub ebx, eax
sub ecx, eax
mov eax, ecx
shl eax, 7
sub eax, ecx
cdq
idiv ebx
add eax, 0x80
cmp eax, 0xfd
jle 0x404672
mov eax, 0xfd
jmp 0x404672
mov edx, dword [esp + ecx*4 + 0x6c]
mov eax, dword [ebp + 0xdc]
mov ecx, dword [esp + ecx*4 + 0x70]
sub eax, edx
shl eax, 7
sub ecx, edx
cdq
idiv ecx
cmp eax, 3
jge 0x404672
mov eax, 3
mov dl, al
mov cl, al
sub dl, 3
sub cl, 2
mov byte [ebp + 0x652], dl
mov byte [ebp + 0x654], cl
mov dl, al
mov cl, al
dec dl
mov byte [ebp + 0x658], al
inc cl
mov byte [ebp + 0x656], dl
add al, 2
mov byte [ebp + 0x65a], cl
mov byte [ebp + 0x65c], al
mov eax, dword [ebp + 0xf8]
cmp eax, esi
jg 0x4046b8
xor ecx, ecx
jmp 0x40470c
cmp eax, dword [esp + 0x74]
jg 0x4046c5
mov ecx, 1
jmp 0x40470c
cmp eax, dword [esp + 0x7c]
jg 0x4046d2
mov ecx, 3
jmp 0x40470c
cmp eax, dword [esp + 0x80]
jg 0x4046e2
mov ecx, 4
jmp 0x40470c
cmp eax, dword [esp + 0x88]
jg 0x4046f2
mov ecx, 6
jmp 0x40470c
cmp eax, dword [esp + 0x8c]
jg 0x404702
mov ecx, 7
jmp 0x40470c
xor ecx, ecx
cmp eax, edi
setg cl
add ecx, 9
mov al, byte [ebp + ecx*2 + 0x253]
mov esi, 3
mov byte [ebp + 0x669], al
mov byte [ebp + 0x667], al
mov byte [ebp + 0x665], al
mov byte [ebp + 0x663], al
mov byte [ebp + 0x661], al
mov byte [ebp + 0x65f], al
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x404774
mov eax, dword [esp + ecx*4 + 0x6c]
mov esi, dword [esp + ecx*4 + 0x70]
mov ecx, dword [ebp + 0xf8]
sub esi, eax
sub ecx, eax
mov eax, ecx
shl eax, 7
sub eax, ecx
cdq
idiv esi
add eax, 0x80
cmp eax, 0xfd
jle 0x404796
mov eax, 0xfd
jmp 0x404796
mov edx, dword [esp + ecx*4 + 0x6c]
mov eax, dword [ebp + 0xf8]
mov ecx, dword [esp + ecx*4 + 0x70]
sub eax, edx
shl eax, 7
sub ecx, edx
cdq
idiv ecx
cmp eax, 3
jge 0x404796
mov eax, 3
mov dl, al
mov cl, al
sub dl, 3
sub cl, 2
mov byte [ebp + 0x65e], dl
mov dl, al
mov byte [ebp + 0x660], cl
dec dl
mov cl, al
mov byte [ebp + 0x662], dl
mov byte [ebp + 0x664], al
inc cl
add al, 2
mov byte [ebp + 0x666], cl
mov byte [ebp + 0x668], al
mov byte [esp + 0x17], 0
lea eax, [ebp + 0x650]
push 0x1a
push eax
mov ecx, ebp
mov edi, 0x4b0
mov byte [ebp + 0x651], 0xc
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov byte [esp + 0x29], 0xfe
mov byte [esp + 0x28], 0xfe
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x404868
mov al, byte [ebp + 0x1c]
test al, al
jne 0x404868
mov al, byte [ebp + 0x1d]
test al, al
jne 0x404868
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x404810
mov al, byte [ebp + 0x1d]
test al, al
je 0x404891
mov eax, dword [ebp + 0x1a0]
test eax, eax
jne 0x4044c7
mov cl, byte [ebp + 0x650]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
jne 0x4044c7
mov ebx, dword [ebp + 0xc8]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x253]
mov edi, 0xc
xor eax, eax
add esi, 4
mov ah, byte [ecx - 1]
mov al, byte [ecx]
add ecx, 2
imul eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi - 4], eax
dec edi
jne 0x4048b9
mov eax, dword [ebp + 0xdc]
mov edx, dword [esp + 0x80]
xor ecx, ecx
cmp eax, edx
jle 0x4049a9
cmp byte [ebp + 0x65c], 0xff
jae 0x404a65
xor eax, eax
mov al, byte [ebp + 0x652]
add eax, 5
cmp eax, 0xff
jle 0x40490f
mov eax, 0xff
mov byte [ebp + 0x652], al
xor eax, eax
mov al, byte [ebp + 0x654]
add eax, 5
cmp eax, 0xff
jle 0x40492c
mov eax, 0xff
mov byte [ebp + 0x654], al
xor eax, eax
mov al, byte [ebp + 0x656]
add eax, 5
cmp eax, 0xff
jle 0x404949
mov eax, 0xff
mov byte [ebp + 0x656], al
xor eax, eax
mov al, byte [ebp + 0x658]
add eax, 5
cmp eax, 0xff
jle 0x404966
mov eax, 0xff
mov byte [ebp + 0x658], al
xor eax, eax
mov al, byte [ebp + 0x65a]
add eax, 5
cmp eax, 0xff
jle 0x404983
mov eax, 0xff
mov byte [ebp + 0x65a], al
xor eax, eax
mov al, byte [ebp + 0x65c]
add eax, 5
cmp eax, 0xff
jle 0x404a5a
mov eax, 0xff
jmp 0x404a5a
cmp eax, dword [esp + 0x6c]
jge 0x404a65
mov al, byte [ebp + 0x652]
test al, al
jbe 0x404a65
and eax, 0xff
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x652], al
xor eax, eax
mov al, byte [ebp + 0x654]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x654], al
xor eax, eax
mov al, byte [ebp + 0x656]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x656], al
xor eax, eax
mov al, byte [ebp + 0x658]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x658], al
xor eax, eax
mov al, byte [ebp + 0x65a]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x65a], al
xor eax, eax
mov al, byte [ebp + 0x65c]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x65c], al
mov ecx, 1
mov eax, dword [ebp + 0xf8]
mov edx, dword [esp + 0x98]
cmp eax, edx
jle 0x404b3a
cmp byte [ebp + 0x668], 0xff
jae 0x404bf6
xor eax, eax
mov al, byte [ebp + 0x65e]
add eax, 5
cmp eax, 0xff
jle 0x404a9e
mov eax, 0xff
mov byte [ebp + 0x65e], al
xor eax, eax
mov al, byte [ebp + 0x660]
add eax, 5
cmp eax, 0xff
jle 0x404abb
mov eax, 0xff
mov byte [ebp + 0x660], al
xor eax, eax
mov al, byte [ebp + 0x662]
add eax, 5
cmp eax, 0xff
jle 0x404ad8
mov eax, 0xff
mov byte [ebp + 0x662], al
xor eax, eax
mov al, byte [ebp + 0x664]
add eax, 5
cmp eax, 0xff
jle 0x404af5
mov eax, 0xff
mov byte [ebp + 0x664], al
xor eax, eax
mov al, byte [ebp + 0x666]
add eax, 5
cmp eax, 0xff
jle 0x404b12
mov eax, 0xff
mov byte [ebp + 0x666], al
xor eax, eax
mov al, byte [ebp + 0x668]
add eax, 5
cmp eax, 0xff
jle 0x404b2f
mov eax, 0xff
mov byte [ebp + 0x668], al
jmp 0x404bfa
cmp eax, dword [esp + 0x84]
jge 0x404bf6
mov al, byte [ebp + 0x65e]
test al, al
jbe 0x404bf6
and eax, 0xff
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x65e], al
mov cl, byte [ebp + 0x660]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x660], al
mov cl, byte [ebp + 0x662]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x662], al
mov cl, byte [ebp + 0x664]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x664], al
mov cl, byte [ebp + 0x666]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x666], al
mov cl, byte [ebp + 0x668]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x668], al
jmp 0x404bfa
test ecx, ecx
je 0x404c2d
mov al, byte [esp + 0x17]
inc al
cmp al, 4
mov byte [esp + 0x17], al
jae 0x404c2d
jmp 0x4047d3
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x45c
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xdc]
mov dword [esp + 0x10], 0x42c80000
mov dword [esp + 0x18], edi
xor ecx, ecx
fild dword [esp + 0x18]
lea esi, [esp + 0x6c]
mov edx, dword [esi]
mov eax, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv st(1)
fcom dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x404c73
fstp dword [esp + 0x10]
mov dword [esp + 0x20], ecx
jmp 0x404c75
fstp st(0)
inc ecx
add esi, 4
cmp ecx, 6
jl 0x404c49
mov ebx, dword [ebp + 0xf8]
mov edi, dword [esp + 0x54]
fstp st(0)
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], 0x42c80000
fild dword [esp + 0x1c]
mov ecx, 6
lea esi, [esp + 0x84]
mov edx, dword [esi]
mov eax, ebx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv st(1)
fcom dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x404cce
fstp dword [esp + 0x10]
mov edi, ecx
jmp 0x404cd0
fstp st(0)
inc ecx
add esi, 4
cmp ecx, 0xc
jl 0x404ca6
mov eax, dword [esp + 0x20]
fstp st(0)
mov edx, dword [esp + eax*4 + 0x6c]
mov dword [ebp + 0xfc], edx
mov cl, byte [ebp + eax*2 + 0x653]
mov byte [ebp + 0x24f], cl
mov dl, byte [ebp + eax*2 + 0x652]
mov eax, dword [esp + edi*4 + 0x6c]
mov byte [ebp + 0x24e], dl
mov dword [ebp + 0xf8], eax
mov cl, byte [ebp + edi*2 + 0x652]
mov byte [ebp + 0x24c], cl
mov dl, byte [ebp + edi*2 + 0x653]
mov byte [ebp + 0x24d], dl
jmp 0x405941
lea eax, [ebp + 0x650]
push 6
push eax
mov ecx, ebp
mov byte [esp + 0x31], 0xfe
mov byte [esp + 0x30], 0xfe
mov byte [eax], 0
mov byte [ebp + 0x651], 2
mov byte [ebp + 0x652], 0
mov byte [ebp + 0x653], 0
mov byte [ebp + 0x654], 0x80
mov byte [ebp + 0x655], 0
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
mov ebx, 1
mov ecx, ebp
push ebx
push 0
call fcn.00401e40
mov esi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x404de4
mov al, byte [ebp + 0x1c]
test al, al
jne 0x404de4
mov al, byte [ebp + 0x1d]
test al, al
jne 0x404de4
lea eax, [esp + 0x28]
push ebx
push eax
mov ecx, ebp
call fcn.00401af0
mov eax, dword [ebp + 0xc8]
xor ecx, ecx
cmp eax, esi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.004027a0
lea edx, [ebp + 0x250]
push ebx
push edx
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x404d8c
mov al, byte [ebp + 0x1d]
test al, al
je 0x404e15
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x404e15
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x650]
mov cl, byte [ebp + 0x250]
and al, 0xf
cmp cl, al
je 0x404e34
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x45c
ret
mov ecx, dword [ebp + 0xc8]
xor eax, eax
mov ah, byte [ebp + 0x252]
mov al, byte [ebp + 0x253]
imul eax, ecx
cdq
sub eax, edx
mov edi, eax
xor eax, eax
mov ah, byte [ebp + 0x254]
mov al, byte [ebp + 0x255]
imul eax, ecx
cdq
sub eax, edx
sar edi, 1
sar eax, 1
cmp edi, eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], eax
je 0x4059e6
mov ecx, dword [ebp + 0x100]
mov dword [esp + 0x18], 0
shl ecx, 5
mov ecx, dword [ecx + 0x41b410]
and ecx, 0x3fc000
cmp ecx, 0xcc000
je 0x404ea5
cmp ecx, 0xd0000
jne 0x404ebc
cmp eax, 0x112a880
jge 0x404ebc
add edi, edi
add eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], eax
mov esi, dword [ebp + 0xdc]
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov edx, esi
mov ebx, dword [esp + 0x10]
cmp edx, edi
jge 0x404ee0
inc ebx
add edx, esi
cmp ebx, 0x40
mov dword [esp + 0x10], ebx
jl 0x404eca
jmp 0x404f0a
imul esi, ebx
sub eax, edi
sub esi, edi
cdq
and edx, 0x7f
add eax, edx
mov ecx, eax
mov eax, esi
cdq
sar ecx, 7
idiv ecx
mov ecx, 0xff
cmp eax, 0xff
jg 0x404f05
mov ecx, eax
cmp ebx, 0x40
jl 0x404f12
mov dword [esp + 0x10], 0x3f
test ecx, ecx
jne 0x404f1d
mov ecx, 1
jmp 0x404f2a
cmp ecx, 0xff
jne 0x404f2a
mov ecx, 0xfe
mov al, cl
lea edx, [ebp + 0x650]
dec al
mov byte [ebp + 0x651], 0xc
mov byte [edx], 0
mov byte [ebp + 0x652], al
mov byte [ebp + 0x653], 0
mov byte [ebp + 0x654], al
mov byte [ebp + 0x655], 1
mov byte [ebp + 0x656], al
mov byte [ebp + 0x657], 2
mov byte [ebp + 0x658], al
mov byte [ebp + 0x659], 3
mov byte [ebp + 0x65a], cl
mov byte [ebp + 0x65b], 0
mov byte [ebp + 0x65c], cl
mov byte [ebp + 0x65d], 1
mov byte [ebp + 0x65e], cl
mov byte [ebp + 0x65f], 2
mov byte [ebp + 0x660], cl
inc cl
mov byte [ebp + 0x661], 3
mov byte [ebp + 0x662], cl
mov byte [ebp + 0x663], 0
mov byte [ebp + 0x664], cl
mov byte [ebp + 0x665], 1
mov byte [ebp + 0x666], cl
mov byte [ebp + 0x667], 2
mov byte [ebp + 0x668], cl
push 0x1a
push edx
mov ecx, ebp
mov byte [ebp + 0x669], 3
call fcn.00401ca0
push 0x1388
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov edi, 0x4b0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x40505a
mov al, byte [ebp + 0x1c]
test al, al
jne 0x40505a
mov al, byte [ebp + 0x1d]
test al, al
jne 0x40505a
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401af0
mov ebx, dword [ebp + 0xc8]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x405002
mov al, byte [ebp + 0x1d]
test al, al
je 0x40508f
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x40508f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x650]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
je 0x4050ae
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xc8]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x253]
mov ebx, 0xc
xor eax, eax
mov ah, byte [ecx - 1]
mov al, byte [ecx]
imul eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x18]
sar eax, 1
test edx, edx
mov dword [esi], eax
je 0x4050e1
lea edx, [eax + eax]
mov dword [esi], edx
add ecx, 2
add esi, 4
dec ebx
jne 0x4050c3
mov edx, dword [ebp + 0xdc]
or ebx, 0xffffffff
xor esi, esi
imul edx, dword [esp + 0x10]
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x40510a
mov eax, edx
sub eax, ecx
jmp 0x40510e
sub ecx, edx
mov eax, ecx
cmp eax, ebx
jae 0x405118
mov dword [esp + 0x1c], esi
mov ebx, eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x4050fe
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x40513e
cmp ecx, 2
jge 0x40513e
mov dword [esp + 0x10], 2
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + esi*4 + 0x6c]
cdq
idiv ecx
shl cl, 2
mov dword [ebp + 0xfc], eax
mov al, byte [ebp + esi*2 + 0x653]
and al, 3
add al, cl
mov byte [ebp + 0x24f], al
mov cl, byte [ebp + esi*2 + 0x652]
mov byte [ebp + 0x24e], cl
jmp 0x405941
mov dl, byte [ebp + 0x283]
lea esi, [ebp + 0x665]
lea edi, [ebp + 0x650]
mov byte [esp + 0x29], 0x7f
mov byte [esi], dl
mov al, byte [ebp + 0x284]
mov byte [ebp + 0x666], al
mov cl, byte [ebp + 0x285]
mov byte [ebp + 0x667], cl
mov dl, byte [ebp + 0x286]
mov byte [ebp + 0x668], dl
mov al, byte [ebp + 0x287]
mov byte [ebp + 0x669], al
mov cl, byte [ebp + 0x288]
mov byte [ebp + 0x66a], cl
mov dl, byte [ebp + 0x289]
mov byte [ebp + 0x66b], dl
mov ecx, esi
mov byte [ebp + 0x66d], 0xff
mov byte [ebp + 0x66c], 0xff
mov edx, dword [ecx]
lea eax, [ebp + 0x651]
mov byte [esp + 0x28], 0x7f
mov byte [esp + 0x30], 0x10
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov byte [esp + 0x31], 0x10
mov byte [esp + 0x32], 0x14
mov dword [eax + 4], edx
mov cx, word [ecx + 8]
mov byte [esp + 0x33], 0xe
mov byte [esp + 0x35], 0x12
mov word [eax + 8], cx
mov al, 0xc
mov byte [edi], 0x65
mov byte [esp + 0x34], al
mov byte [esp + 0x36], al
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], al
mov byte [esp + 0x4b], al
mov eax, dword [ebp + 0xc8]
mov byte [esp + 0x37], 6
cmp eax, 0x12c0
mov byte [esp + 0x38], 6
mov byte [esp + 0x39], 8
mov byte [esp + 0x3a], 6
mov byte [esp + 0x3b], 6
mov byte [esp + 0x3c], 6
mov byte [esp + 0x3d], 6
mov byte [esp + 0x3e], 6
mov byte [esp + 0x3f], 6
mov byte [esp + 0x40], 6
mov byte [esp + 0x41], 8
mov byte [esp + 0x42], 6
mov byte [esp + 0x43], 6
mov byte [esp + 0x44], 6
mov byte [esp + 0x45], 6
mov byte [esp + 0x46], 6
mov byte [esp + 0x47], 6
mov byte [esp + 0x48], 6
mov byte [esp + 0x4c], 0xff
mov byte [esp + 0x4d], 0xff
mov byte [esp + 0x4e], 0xff
mov byte [esp + 0x4f], 0xff
mov byte [esp + 0x50], 0xff
mov byte [esp + 0x51], 0xff
mov byte [esp + 0x52], 0xff
jg 0x4052e1
je 0x4052da
cmp eax, 0x4b0
je 0x4052d6
cmp eax, 0x960
jne 0x4052e8
mov eax, 7
jmp 0x4052f4
xor eax, eax
jmp 0x4052f4
mov eax, 0xe
jmp 0x4052f4
cmp eax, 0x2580
je 0x4052ef
mov eax, 0x1c
jmp 0x4052f4
mov eax, 0x15
mov ecx, dword [ebp + 0xdc]
cmp ecx, 0x5b8d80
jle 0x405303
inc eax
cmp ecx, 0x802c80
jle 0x40530c
inc eax
cmp ecx, 0xb71b00
jle 0x405315
inc eax
cmp ecx, 0x1036640
jle 0x40531e
inc eax
cmp ecx, 0x16e3600
jle 0x405327
inc eax
cmp ecx, 0x206cc80
jle 0x405330
inc eax
mov dl, byte [esp + eax + 0x30]
mov byte [ebp + 0x65a], dl
mov byte [ebp + 0x65b], 6
mov eax, dword [ebp + 0xdc]
cmp eax, 0x7270e0
jg 0x405357
xor al, al
xor dl, dl
jmp 0x4054fd
cmp eax, 0x989680
jg 0x4054cf
xor al, al
mov dl, 1
mov bl, 0x80
mov byte [esp + 0x17], 0xff
mov byte [esp + 0x27], 0
mov cl, bl
shl al, 6
or al, 0x18
mov byte [ebp + 0x660], al
mov byte [ebp + 0x65c], al
mov al, byte [esp + 0x17]
mov byte [ebp + 0x65d], bl
shl dl, 6
mov byte [ebp + 0x661], al
mov byte [ebp + 0x662], 2
mov al, dl
mov dl, byte [esp + 0x27]
mov byte [ebp + 0x65e], 2
mov byte [ebp + 0x663], 0
or al, 0x18
mov byte [ebp + 0x65f], 0
mov byte [ebp + 0x668], al
mov byte [ebp + 0x664], al
mov byte [esi], dl
mov byte [ebp + 0x669], cl
mov byte [ebp + 0x66a], 2
mov byte [ebp + 0x666], 2
mov byte [ebp + 0x66b], 0
mov byte [ebp + 0x667], 0
mov eax, dword [ebp + 0xf8]
cmp eax, 0x1312d00
mov al, 0x58
jl 0x4053fd
mov al, 0x98
mov byte [ebp + 0x670], al
mov byte [ebp + 0x66c], al
mov byte [ebp + 0x66d], 0
mov byte [ebp + 0x671], 0x80
mov byte [ebp + 0x672], 2
push 0x24
mov byte [ebp + 0x66e], 2
push edi
mov ecx, ebp
mov byte [ebp + 0x673], 0
mov byte [ebp + 0x66f], 0
call fcn.00401ca0
push 0x7d0
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x40549a
mov al, byte [ebp + 0x1c]
test al, al
jne 0x40549a
mov al, byte [ebp + 0x1d]
test al, al
jne 0x40549a
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401af0
push 0
mov ecx, ebp
call fcn.004027a0
lea ecx, [ebp + 0x250]
push 1
push ecx
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x405454
mov al, byte [ebp + 0x1d]
test al, al
je 0x40551d
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x40551d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
cmp eax, 0xe4e1c0
jg 0x4054dc
mov al, 1
mov dl, al
jmp 0x4054fd
cmp eax, 0x1406f40
jg 0x4054ec
mov al, 1
mov dl, 2
jmp 0x405366
cmp eax, 0x1d905c0
jg 0x4054f9
mov al, 2
mov dl, al
jmp 0x4054fd
mov al, 3
mov dl, al
xor bl, bl
cmp al, 3
setne cl
dec ecx
mov byte [esp + 0x17], 0x80
and ecx, 0xffffffb5
mov byte [esp + 0x27], 0x80
add ecx, 0xff
jmp 0x405374
cmp byte [ebp + 0x250], 0x65
je 0x405536
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov eax, dword [ebp + 0xc8]
cmp eax, 0x1c200
jne 0x405550
mov dword [esp + 0x10], 0x835
jmp 0x4055de
cmp eax, 0xe100
jne 0x405561
mov dword [esp + 0x10], 0x820
jmp 0x4055de
cmp eax, 0x9600
jne 0x405572
mov dword [esp + 0x10], 0x81b
jmp 0x4055de
cmp eax, 0x7080
jne 0x405583
mov dword [esp + 0x10], 0x818
jmp 0x4055de
cmp eax, 0x4b00
jne 0x405594
mov dword [esp + 0x10], 0x816
jmp 0x4055de
cmp eax, 0x3840
jne 0x4055a5
mov dword [esp + 0x10], 0x814
jmp 0x4055de
cmp eax, 0x2580
jne 0x4055b6
mov dword [esp + 0x10], 0x814
jmp 0x4055de
cmp eax, 0x12c0
jne 0x4055c7
mov dword [esp + 0x10], 0x812
jmp 0x4055de
cmp eax, 0x960
mov dword [esp + 0x10], 0x80f
je 0x4055de
mov dword [esp + 0x10], 0x80d
xor ecx, ecx
lea esi, [esp + 0x5c]
mov ch, byte [ebp + 0x272]
mov ebx, 4
mov cl, byte [ebp + 0x273]
imul ecx, eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
mov cl, byte [ebp + 0x271]
shr eax, 0x1f
mov byte [ebp + 0x24c], cl
lea ecx, [ebp + 0x25f]
lea eax, [edx + eax + 6]
imul eax, dword [esp + 0x10]
mov dword [ebp + 0xf8], eax
mov edi, dword [ebp + 0xc8]
xor edx, edx
mov eax, 0x1b4e81b5
mov dh, byte [ecx - 1]
add esi, 4
mov dl, byte [ecx]
add ecx, 4
imul edx, edi
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 6]
imul edx, dword [esp + 0x10]
mov dword [esi - 4], edx
dec ebx
jne 0x40562e
mov esi, dword [ebp + 0xdc]
mov dword [esp + 0x20], 0x42c80000
mov dword [esp + 0x18], esi
xor ecx, ecx
fild dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
lea edi, [esp + 0x5c]
mov edx, dword [edi]
mov eax, esi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv st(1)
fcom dword [esp + 0x20]
fnstsw ax
test ah, 1
je 0x4056a4
fstp dword [esp + 0x20]
mov ebx, ecx
jmp 0x4056a6
fstp st(0)
inc ecx
add edi, 4
cmp ecx, 4
jl 0x40567c
cmp ebx, 2
fstp st(0)
jge 0x40570b
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
xor eax, eax
sub ecx, edi
mov al, byte [ebp + 0x25d]
xor edx, edx
mov dl, byte [ebp + 0x261]
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
sub edx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
xor ebx, ebx
fidiv dword [esp + 0x1c]
mov bl, byte [ebp + 0x25c]
mov dword [esp + 0x18], ebx
fild dword [esp + 0x20]
fmul st(1)
call sub.MSVCRT.dll__ftol
sub eax, edi
add eax, esi
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jmp 0x40575e
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
xor eax, eax
sub ecx, edi
mov al, byte [ebp + 0x265]
xor edx, edx
mov dl, byte [ebp + 0x269]
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
sub edx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
xor ebx, ebx
fidiv dword [esp + 0x1c]
mov bl, byte [ebp + 0x264]
mov dword [esp + 0x18], ebx
fild dword [esp + 0x20]
fmul st(1)
call sub.MSVCRT.dll__ftol
sub eax, edi
add eax, esi
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv st(1)
call sub.MSVCRT.dll__ftol
sub eax, 5
fstp st(0)
jns 0x405770
xor eax, eax
jmp 0x40577c
cmp eax, 0xf4
jle 0x40577c
mov eax, 0xf4
mov byte [ebp + 0x65b], 0xb
mov cl, byte [ebp + 0x65b]
xor edx, edx
test cl, cl
jbe 0x4057bc
lea ecx, [ebp + 0x65d]
jmp 0x40579b
mov ebx, dword [esp + 0x18]
mov byte [ecx - 1], bl
mov bl, dl
add bl, al
inc edx
mov byte [ecx], bl
mov byte [ecx + 1], 2
xor ebx, ebx
mov byte [ecx + 2], 0
mov bl, byte [ebp + 0x65b]
add ecx, 4
cmp edx, ebx
jl 0x405797
lea eax, [ebp + 0x650]
push 0x38
push eax
mov ecx, ebp
call fcn.00401ca0
push 0x7d0
mov ecx, ebp
call fcn.004020d0
push 1
push 0
mov ecx, ebp
call fcn.00401e40
push 0xfa0
mov ecx, ebp
call fcn.004020d0
mov al, byte [ebp + 0x1b]
test al, al
je 0x404c0d
mov ecx, ebp
call fcn.004020f0
test al, al
jne 0x404c1d
mov al, byte [ebp + 0x18]
test al, al
jne 0x405835
mov al, byte [ebp + 0x1c]
test al, al
jne 0x405835
mov al, byte [ebp + 0x1d]
test al, al
jne 0x405835
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401af0
push 0
mov ecx, ebp
call fcn.004027a0
lea esi, [ebp + 0x250]
push 1
push esi
mov ecx, ebp
call fcn.00401e40
test al, al
je 0x4057ef
mov al, byte [ebp + 0x1d]
test al, al
je 0x40586a
mov eax, dword [ebp + 0x1a0]
test eax, eax
je 0x40586a
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
cmp byte [esi], 0x65
je 0x40587f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x25c]
mov dword [esp + 0x20], 0x42c80000
mov byte [ebp + 0x24f], cl
mov ebx, dword [ebp + 0xdc]
mov dword [esp + 0x18], ebx
mov edi, ebx
fild dword [esp + 0x18]
lea esi, [ebp + 0x25f]
mov dword [esp + 0x1c], 0xb
xor ecx, ecx
mov eax, 0x1b4e81b5
mov ch, byte [esi - 1]
mov cl, byte [esi]
imul ecx, dword [ebp + 0xc8]
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 6]
mov eax, ebx
imul ecx, dword [esp + 0x10]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fdiv st(1)
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 1
je 0x405927
mov dl, byte [esi - 2]
mov edi, ecx
mov byte [ebp + 0x24e], dl
mov ebx, dword [ebp + 0xdc]
mov eax, ebx
mov dword [esp + 0x18], ebx
sub eax, ecx
cdq
fstp st(0)
fild dword [esp + 0x18]
xor eax, edx
sub eax, edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv st(1)
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add esi, 4
dec eax
mov dword [esp + 0x1c], eax
jne 0x4058b1
fstp st(0)
mov dword [ebp + 0xfc], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x58], 0
sub eax, edi
sub esp, 8
mov dword [esp + 0x5c], eax
fild qword [esp + 0x5c]
fmul dword [0x424044]
fstp qword [esp]
push 0x42d6f8
push ebp
call fcn.004016d0
fild dword [ebp + 0xfc]
fild dword [ebp + 0xdc]
add esp, 8
mov ecx, ebp
fld st(1)
fsub st(1)
sub esp, 8
fdiv st(1)
fmul dword [0x424040]
fstp qword [esp + 8]
fstp st(0)
fmul qword [0x424038]
fstp qword [esp]
push 0x1f4f
call fcn.00401690
push eax
push ebp
call fcn.004016d0
mov byte [ebp + 0x2f], 1
add esp, 0x18
fild dword [ebp + 0xdc]
fild dword [ebp + 0xfc]
pop edi
pop esi
xor eax, eax
fsub st(1)
fdiv st(1)
fmul dword [0x424040]
fstp dword [ebp + 0x194]
pop ebp
pop ebx
fstp st(0)
add esp, 0x45c
ret
mov eax, dword [ebp + 0x100]
shl eax, 5
mov eax, dword [eax + 0x41b410]
and eax, 0x3fc000
cmp eax, 0x64000
je 0x405b2d
cmp eax, 0x70000
je 0x405b2d
mov byte [ebp + 0x24d], 0x40
mov cl, byte [ebp + 0x1d0]
xor edx, edx
mov byte [ebp + 0x24c], cl
mov dh, byte [ebp + 0x1d9]
mov dl, byte [ebp + 0x1da]
imul edx, dword [ebp + 0xc8]
mov dword [ebp + 0xf8], edx
mov eax, dword [ebp + 0x100]
shl eax, 5
mov ecx, dword [eax + 0x41b410]
and ecx, 0x3fc000
cmp ecx, 0xb4000
jb 0x405ae1
mov dl, byte [ebp + 0x255]
mov byte [ebp + 0x24e], dl
mov eax, dword [ebp + 0x154]
cmp eax, 0x74
jl 0x405a94
mov al, byte [ebp + 0x256]
mov cl, byte [ebp + 0x257]
shr al, 4
and al, 3
shl cl, 2
add al, cl
mov byte [ebp + 0x24f], al
jmp 0x405aad
mov dl, byte [ebp + 0x257]
mov al, byte [ebp + 0x256]
shl dl, 2
and al, 3
add dl, al
mov byte [ebp + 0x24f], dl
xor ecx, ecx
xor edx, edx
mov ch, byte [ebp + 0x251]
mov dh, byte [ebp + 0x253]
mov cl, byte [ebp + 0x252]
mov dl, byte [ebp + 0x254]
shl ecx, 0x10
or ecx, edx
pop edi
mov dword [ebp + 0xfc], ecx
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x276]
xor edx, edx
mov byte [ebp + 0x24e], al
mov cl, byte [ebp + 0x277]
mov byte [ebp + 0x24f], cl
mov dh, byte [ebp + 0x1d4]
mov dl, byte [ebp + 0x1d5]
xor eax, eax
mov ah, byte [ebp + 0x1d6]
pop edi
mov al, byte [ebp + 0x1d7]
pop esi
shl edx, 0x10
or edx, eax
xor eax, eax
mov dword [ebp + 0xfc], edx
pop ebp
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x1e7]
xor eax, eax
mov byte [ebp + 0x24c], cl
mov ah, byte [ebp + 0x1cf]
mov al, byte [ebp + 0x1d0]
imul eax, dword [ebp + 0xc8]
lea ecx, [eax + eax*2]
mov eax, 0x92492493
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 0xf8], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x45c
ret