Function at 0x403400
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 + 0x118]
shl eax, 5
mov ecx, dword [eax + 0x41d480]
and ecx, 0x7f8000
cmp ecx, 0xc8000
jb 0x405ccb
mov al, byte [ebp + 0x22]
test al, al
jne 0x405b44
mov edx, dword [ebp + 0x454]
mov al, byte [edx + 0xf]
and al, 0xc0
cmp al, 0xc0
jne 0x405b44
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x2335
mov ecx, ebp
mov dword [esp + 0x58], eax
call fcn.004016c0
push eax
push ebp
call fcn.00401700
mov ecx, dword [ebp + 0x118]
add esp, 8
shl ecx, 5
mov eax, dword [ecx + 0x41d480]
and eax, 0x7f8000
cmp eax, 0xc8000
je 0x4052d3
cmp eax, 0xe0000
je 0x4052d3
cmp eax, 0x1a8000
jb 0x403f1c
cmp dword [ebp + 0x174], 0x74
jl 0x403a82
lea ecx, [ebp + 0x881]
mov byte [ebp + 0x882], 8
mov byte [ebp + 0x883], 0
mov byte [ebp + 0x884], 0
mov byte [ecx], 0
mov byte [ebp + 0x885], 0xff
mov byte [ebp + 0x886], 0
mov byte [ebp + 0x887], 0
mov byte [ebp + 0x888], 0x10
mov byte [ebp + 0x889], 0xff
mov byte [ebp + 0x88a], 0x10
mov al, 0x20
mov byte [ebp + 0x88b], 0
mov byte [ebp + 0x88c], al
mov byte [ebp + 0x88d], 0xff
mov byte [ebp + 0x88e], al
mov al, 0x30
mov byte [ebp + 0x88f], 0
push 0x12
mov byte [ebp + 0x890], al
push ecx
mov byte [ebp + 0x891], 0xff
mov ecx, ebp
mov byte [esp + 0x31], 0xfe
mov byte [esp + 0x30], 0xfe
mov byte [ebp + 0x892], al
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov esi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x4035bd
mov al, byte [ebp + 0x24]
test al, al
jne 0x4035bd
mov al, byte [ebp + 0x25]
test al, al
jne 0x4035bd
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor eax, eax
cmp ebx, esi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.00402850
lea ecx, [ebp + 0x481]
push 1
push ecx
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x403565
mov al, byte [ebp + 0x25]
test al, al
je 0x4035f2
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x4035f2
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov dl, byte [ebp + 0x881]
mov al, byte [ebp + 0x481]
and dl, 0xf
cmp al, dl
je 0x403615
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xe0]
lea ecx, [esp + 0x6c]
lea eax, [ebp + 0x484]
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 0x40362a
mov eax, dword [esp + 0x88]
mov esi, dword [ebp + 0xf4]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 1
xor ecx, ecx
mov dword [esp + 0x1c], eax
cmp esi, dword [esp + 0x6c]
jl 0x40367e
cmp esi, dword [esp + 0x70]
jle 0x403709
cmp esi, ebx
jl 0x40368c
cmp esi, dword [esp + 0x78]
jle 0x403745
mov edx, dword [esp + 0x7c]
cmp esi, edx
mov edx, dword [esp + 0x80]
jl 0x4036a5
cmp esi, edx
jle 0x40377d
jmp 0x4036a9
cmp esi, edx
jle 0x4036d4
cmp esi, edi
jge 0x4037dc
mov eax, dword [esp + 0x10]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x1c]
cdq
idiv ebx
cmp esi, eax
jg 0x4037b0
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x88]
jmp 0x4036dc
cmp esi, edi
jge 0x4037dc
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0xf4]
add esi, edx
mov edx, dword [esp + 0x1c]
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
cmp edx, 0x40
jl 0x40366e
jmp 0x40380b
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
sub eax, ecx
mov dword [esp + 0x20], 0
cdq
and edx, 0xff
add eax, edx
mov edi, eax
mov eax, esi
sub eax, ecx
cdq
sar edi, 8
idiv edi
cmp eax, 0xff
jle 0x403809
mov ecx, 0xff
jmp 0x40380b
mov eax, dword [esp + 0x78]
mov dword [esp + 0x20], 1
sub eax, ebx
cdq
and edx, 0xff
add eax, edx
mov ecx, eax
mov eax, esi
sub eax, ebx
cdq
sar ecx, 8
idiv ecx
cmp eax, 0xff
jle 0x403809
mov ecx, 0xff
jmp 0x40380b
mov ecx, dword [esp + 0x7c]
mov eax, edx
sub eax, ecx
mov dword [esp + 0x20], 2
cdq
and edx, 0xff
add eax, edx
mov edi, eax
mov eax, esi
sub eax, ecx
cdq
sar edi, 8
idiv edi
cmp eax, 0xff
jle 0x403809
mov ecx, 0xff
jmp 0x40380b
mov ebx, dword [esp + 0x80]
mov edx, esi
sub edx, ebx
sub edi, esi
cmp edx, edi
jg 0x4037d0
mov dword [esp + 0x20], 2
mov ecx, 0xff
jmp 0x40380b
mov dword [esp + 0x20], 3
xor ecx, ecx
jmp 0x40380b
sub eax, edi
mov dword [esp + 0x20], 3
cdq
and edx, 0xff
add eax, edx
mov ecx, eax
mov eax, esi
sub eax, edi
cdq
sar ecx, 8
idiv ecx
cmp eax, 0xff
jle 0x403809
mov ecx, 0xff
jmp 0x40380b
mov ecx, eax
cmp dword [esp + 0x10], 0x10
jl 0x40381a
mov dword [esp + 0x10], 0xf
cmp ecx, 7
jge 0x403826
mov ecx, 7
jmp 0x403833
cmp ecx, 0xfc
jle 0x403833
mov ecx, 0xfc
mov dl, cl
mov al, byte [esp + 0x20]
sub dl, 7
lea esi, [ebp + 0x881]
mov byte [ebp + 0x883], dl
mov dl, cl
sub dl, 6
mov byte [esi], 0
mov byte [ebp + 0x885], dl
mov dl, cl
sub dl, 5
mov byte [ebp + 0x882], 0xc
mov byte [ebp + 0x887], dl
mov dl, cl
sub dl, 4
push 0x1a
mov byte [ebp + 0x889], dl
mov dl, cl
shl al, 4
sub dl, 3
mov byte [ebp + 0x884], al
mov byte [ebp + 0x886], al
mov byte [ebp + 0x888], al
mov byte [ebp + 0x88a], al
mov byte [ebp + 0x88b], dl
mov dl, cl
mov byte [ebp + 0x88c], al
sub dl, 2
push esi
mov byte [ebp + 0x88d], dl
mov dl, cl
dec dl
mov byte [ebp + 0x88e], al
mov byte [ebp + 0x88f], dl
mov dl, cl
mov byte [ebp + 0x890], al
mov byte [ebp + 0x891], cl
inc dl
mov byte [ebp + 0x892], al
mov byte [ebp + 0x893], dl
mov dl, cl
add dl, 2
mov byte [ebp + 0x894], al
mov byte [ebp + 0x895], dl
mov dl, cl
add dl, 3
mov byte [ebp + 0x896], al
mov byte [ebp + 0x897], dl
add cl, 4
mov byte [ebp + 0x898], al
mov byte [ebp + 0x899], cl
mov ecx, ebp
mov byte [ebp + 0x89a], al
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov edi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x40398c
mov al, byte [ebp + 0x24]
test al, al
jne 0x40398c
mov al, byte [ebp + 0x25]
test al, al
jne 0x40398c
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor ecx, ecx
cmp ebx, edi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x403933
mov al, byte [ebp + 0x25]
test al, al
je 0x4039c1
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x4039c1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov dl, byte [ebp + 0x881]
mov al, byte [esi]
and dl, 0xf
cmp al, dl
je 0x4039e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xe0]
lea ecx, [esp + 0x6c]
lea eax, [ebp + 0x484]
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 0x4039f5
mov edx, dword [esp + 0x10]
or ebx, 0xffffffff
xor esi, esi
imul edx, dword [ebp + 0xf4]
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x403a2b
mov eax, edx
sub eax, ecx
jmp 0x403a2f
sub ecx, edx
mov eax, ecx
cmp eax, ebx
jae 0x403a39
mov dword [esp + 0x18], esi
mov ebx, eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x403a1f
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + esi*4 + 0x6c]
cdq
idiv ecx
mov dl, cl
shl dl, 2
mov dword [ebp + 0x114], eax
mov al, byte [esp + 0x20]
and al, 3
add dl, al
mov byte [ebp + 0x47f], dl
mov al, byte [ebp + esi*2 + 0x883]
mov byte [ebp + 0x480], cl
mov byte [ebp + 0x47e], al
jmp 0x405a9f
mov al, 0x66
mov byte [ebp + 0x881], 0
mov byte [esp + 0x29], al
mov byte [esp + 0x28], al
lea eax, [ebp + 0x881]
mov byte [ebp + 0x882], 5
mov byte [ebp + 0x883], 0
mov byte [ebp + 0x884], 0
mov byte [ebp + 0x885], 0x80
mov byte [ebp + 0x886], 0
mov byte [ebp + 0x887], 0
mov byte [ebp + 0x888], 0x80
mov byte [ebp + 0x889], 0x80
mov byte [ebp + 0x88a], 0x80
push 0xc
mov byte [ebp + 0x88b], 0xff
push eax
mov ecx, ebp
mov byte [ebp + 0x88c], 0
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov esi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x403b65
mov al, byte [ebp + 0x24]
test al, al
jne 0x403b65
mov al, byte [ebp + 0x25]
test al, al
jne 0x403b65
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor edx, edx
cmp ebx, esi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.00402850
lea eax, [ebp + 0x481]
push 1
push eax
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x403b0c
mov al, byte [ebp + 0x25]
test al, al
je 0x403b9a
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x403b9a
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x881]
mov al, byte [ebp + 0x481]
and cl, 0xf
cmp al, cl
je 0x403bbd
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov eax, dword [ebp + 0xe0]
xor edx, edx
mov dh, byte [ebp + 0x485]
xor ecx, ecx
mov dl, byte [ebp + 0x486]
mov ch, byte [ebp + 0x483]
imul edx, eax
mov dword [esp + 0x70], edx
xor edx, edx
mov dh, byte [ebp + 0x487]
mov cl, byte [ebp + 0x484]
mov dl, byte [ebp + 0x488]
imul ecx, eax
imul edx, eax
mov dword [esp + 0x74], edx
xor edx, edx
mov dh, byte [ebp + 0x489]
mov esi, dword [ebp + 0xf4]
mov dl, byte [ebp + 0x48a]
xor ebx, ebx
imul edx, eax
mov dword [esp + 0x78], edx
xor edx, edx
mov dh, byte [ebp + 0x48b]
mov edi, 1
mov dl, byte [ebp + 0x48c]
mov dword [esp + 0x6c], ecx
imul eax, edx
cmp esi, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edi
jg 0x403c50
cmp esi, ecx
jge 0x403c59
lea ecx, [esi + esi]
cmp ecx, eax
jle 0x403c59
mov ebx, 1
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + ebx*8 + 0x6c]
xor ecx, ecx
mov eax, esi
cmp eax, edx
jge 0x403c73
inc edi
add eax, esi
cmp edi, 0x40
jl 0x403c61
mov dword [esp + 0x20], edi
jmp 0x403ca4
mov eax, dword [esp + ebx*8 + 0x70]
mov ecx, dword [esp + ebx*8 + 0x6c]
sub eax, ecx
mov dword [esp + 0x20], 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 0x403ca4
mov ecx, eax
cmp edi, 0x10
jl 0x403cb1
mov dword [esp + 0x20], 0xf
test ecx, ecx
jne 0x403cbc
mov ecx, 1
jmp 0x403cc9
cmp ecx, 0xff
jne 0x403cc9
mov ecx, 0xfe
mov al, bl
mov dl, cl
shl al, 7
mov bl, al
dec dl
inc bl
mov byte [ebp + 0x883], dl
mov byte [ebp + 0x885], dl
mov byte [esp + 0x17], bl
mov byte [ebp + 0x886], bl
mov byte [ebp + 0x887], dl
mov byte [ebp + 0x889], dl
mov bl, al
mov dl, al
lea esi, [ebp + 0x881]
add bl, 2
add dl, 3
mov byte [esi], 0
mov byte [ebp + 0x882], 0xc
mov byte [ebp + 0x884], al
mov byte [ebp + 0x888], bl
mov byte [ebp + 0x88a], dl
mov byte [esp + 0x27], dl
mov dl, byte [esp + 0x17]
mov byte [ebp + 0x88b], cl
mov byte [ebp + 0x88c], al
mov byte [ebp + 0x88d], cl
mov byte [ebp + 0x88e], dl
mov dl, byte [esp + 0x27]
mov byte [ebp + 0x88f], cl
mov byte [ebp + 0x890], bl
mov byte [ebp + 0x891], cl
inc cl
mov byte [ebp + 0x892], dl
mov byte [ebp + 0x893], cl
mov byte [ebp + 0x894], al
mov al, byte [esp + 0x17]
mov byte [ebp + 0x895], cl
mov byte [ebp + 0x896], al
mov byte [ebp + 0x897], cl
mov byte [ebp + 0x898], bl
mov byte [ebp + 0x899], cl
push 0x1a
push esi
mov ecx, ebp
mov byte [ebp + 0x89a], dl
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov edi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x403e15
mov al, byte [ebp + 0x24]
test al, al
jne 0x403e15
mov al, byte [ebp + 0x25]
test al, al
jne 0x403e15
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor edx, edx
cmp ebx, edi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x403dbc
mov al, byte [ebp + 0x25]
test al, al
je 0x403e4a
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x403e4a
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x881]
mov cl, byte [esi]
and al, 0xf
cmp cl, al
je 0x403e68
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xe0]
lea ecx, [esp + 0x6c]
lea eax, [ebp + 0x484]
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 0x403e7d
mov ebx, dword [esp + 0x20]
xor esi, esi
mov edx, ebx
mov dword [esp + 0x10], 0xffffffff
imul edx, dword [ebp + 0xf4]
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x403eba
mov eax, edx
sub eax, ecx
jmp 0x403ebe
sub ecx, edx
mov eax, ecx
cmp eax, dword [esp + 0x10]
jae 0x403ecc
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x403eae
mov esi, dword [esp + 0x18]
mov eax, dword [esp + esi*4 + 0x6c]
cdq
idiv ebx
mov dword [ebp + 0x114], eax
mov al, byte [esp + 0x1c]
mov cl, byte [ebp + esi*2 + 0x884]
shl al, 5
add al, bl
and cl, 3
shl al, 2
add cl, al
mov byte [ebp + 0x47f], cl
mov dl, byte [ebp + esi*2 + 0x883]
mov byte [ebp + 0x47e], dl
mov byte [ebp + 0x480], bl
jmp 0x405a9f
cmp eax, 0x168000
je 0x404e9d
cmp eax, 0x170000
je 0x404e9d
cmp eax, 0x178000
je 0x404e9d
cmp eax, 0x180000
je 0x404e9d
cmp eax, 0x188000
je 0x404e9d
cmp eax, 0x190000
je 0x404e9d
cmp eax, 0x198000
je 0x404e9d
cmp eax, 0x1a0000
je 0x404e9d
cmp eax, 0x160000
mov byte [esp + 0x29], 0xfe
mov byte [esp + 0x28], 0xfe
jne 0x4044d5
lea eax, [ebp + 0x881]
mov byte [ebp + 0x882], 8
mov byte [ebp + 0x883], 0
mov byte [ebp + 0x884], 0
mov byte [eax], 0
mov byte [ebp + 0x885], 0
mov byte [ebp + 0x886], 0x7f
mov byte [ebp + 0x887], 1
mov byte [ebp + 0x888], 0
mov byte [ebp + 0x889], 1
mov byte [ebp + 0x88a], 0x7f
mov byte [ebp + 0x88b], 2
mov byte [ebp + 0x88c], 0
mov byte [ebp + 0x88d], 2
mov byte [ebp + 0x88e], 0x7f
mov byte [ebp + 0x88f], 3
mov byte [ebp + 0x890], 0
push 0x12
mov byte [ebp + 0x891], 3
push eax
mov ecx, ebp
mov byte [ebp + 0x892], 0x7f
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov esi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x404088
mov al, byte [ebp + 0x24]
test al, al
jne 0x404088
mov al, byte [ebp + 0x25]
test al, al
jne 0x404088
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor ecx, ecx
cmp ebx, esi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.00402850
lea edx, [ebp + 0x481]
push 1
push edx
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x40402f
mov al, byte [ebp + 0x25]
test al, al
je 0x4040bd
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x4040bd
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x881]
mov cl, byte [ebp + 0x481]
and al, 0xf
cmp cl, al
je 0x4040df
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov ebx, dword [ebp + 0xe0]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x484]
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 0x4040f4
mov edx, dword [ebp + 0xf4]
xor eax, eax
lea ecx, [esp + 0x70]
cmp edx, dword [ecx]
jl 0x404128
inc eax
add ecx, 8
cmp eax, 3
jl 0x40411b
lea ecx, [ebp + 0x881]
mov byte [ebp + 0x882], 9
mov byte [ebp + 0x883], al
mov byte [ebp + 0x884], 0
mov byte [ecx], 0
mov byte [ebp + 0x885], al
mov byte [ebp + 0x886], 0x10
mov byte [ebp + 0x887], al
mov byte [ebp + 0x888], 0x20
mov byte [ebp + 0x889], al
mov byte [ebp + 0x88a], 0x30
mov byte [ebp + 0x88b], al
mov byte [ebp + 0x88c], 0x40
mov byte [ebp + 0x88d], al
mov byte [ebp + 0x88e], 0x50
mov byte [ebp + 0x88f], al
mov byte [ebp + 0x890], 0x60
mov byte [ebp + 0x891], al
push 0x14
mov byte [ebp + 0x892], 0x70
push ecx
mov byte [ebp + 0x893], al
mov ecx, ebp
mov byte [ebp + 0x894], 0x7f
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov edi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x40422c
mov al, byte [ebp + 0x24]
test al, al
jne 0x40422c
mov al, byte [ebp + 0x25]
test al, al
jne 0x40422c
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor edx, edx
cmp ebx, edi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x4041d3
mov al, byte [ebp + 0x25]
test al, al
je 0x404261
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x404261
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x881]
mov cl, byte [esi]
and al, 0xf
cmp cl, al
je 0x40427f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xe0]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x484]
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 0x404294
mov eax, dword [ebp + 0xf4]
mov ecx, 1
lea edx, [esp + 0x70]
cmp eax, dword [edx]
jl 0x4042cb
inc ecx
add edx, 4
cmp ecx, 8
jl 0x4042be
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 + 0x884], cl
mov cl, al
mov byte [ebp + 0x886], dl
sub cl, 2
mov dl, al
mov byte [ebp + 0x888], cl
dec dl
mov cl, al
mov byte [ebp + 0x88a], dl
inc cl
mov byte [ebp + 0x88c], al
mov byte [ebp + 0x88e], cl
mov dl, al
mov cl, al
add dl, 2
add cl, 3
mov byte [ebp + 0x890], dl
add al, 4
mov byte [ebp + 0x892], cl
mov byte [ebp + 0x894], al
lea eax, [ebp + 0x881]
mov ecx, ebp
push eax
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov edi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x4043c1
mov al, byte [ebp + 0x24]
test al, al
jne 0x4043c1
mov al, byte [ebp + 0x25]
test al, al
jne 0x4043c1
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x404369
mov al, byte [ebp + 0x25]
test al, al
je 0x4043f6
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x4043f6
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x881]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
je 0x404415
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov ebx, dword [ebp + 0xe0]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x484]
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 0x40442a
mov esi, dword [ebp + 0xf4]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x1c], 0xffffffff
xor edx, edx
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp esi, ecx
jl 0x404469
mov eax, esi
sub eax, ecx
jmp 0x40446d
sub ecx, esi
mov eax, ecx
cmp eax, dword [esp + 0x1c]
jae 0x404479
mov ebx, edx
mov dword [esp + 0x1c], eax
inc edx
add edi, 4
cmp edx, 9
jl 0x40445d
mov edx, dword [esp + ebx*4 + 0x6c]
mov dword [ebp + 0x114], edx
mov al, byte [ebp + ebx*2 + 0x883]
mov cl, byte [ebp + 0x419]
and al, 3
shl cl, 4
or al, cl
mov byte [ebp + 0x47f], al
mov dl, byte [ebp + ebx*2 + 0x884]
mov byte [ebp + 0x47e], dl
mov al, byte [ebp + 0x41a]
and al, 3
mov byte [ebp + 0x47c], al
mov cl, byte [ebp + 0x41b]
and cl, 0x7f
mov byte [ebp + 0x47d], cl
jmp 0x405a9f
mov byte [ebp + 0x881], 0
mov byte [ebp + 0x882], 0xb
xor ecx, ecx
lea esi, [ebp + 0x883]
mov eax, ecx
mov edi, 3
cdq
idiv edi
test edx, edx
jne 0x4044fb
mov byte [esi], dl
cmp edx, 1
jne 0x404503
mov byte [esi], 0x80
cmp edx, 2
jne 0x40450b
mov byte [esi], 0xff
mov edx, dword [ebp + 0x118]
shl edx, 5
mov eax, dword [edx + 0x41d480]
and eax, 0x7f8000
cmp eax, 0xc8000
je 0x404547
cmp eax, 0xe0000
je 0x404547
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 0x40455b
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 0x4044eb
lea eax, [ebp + 0x881]
push 0x1a
push eax
mov ecx, ebp
mov byte [ebp + 0x899], 0
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov esi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x4045f0
mov al, byte [ebp + 0x24]
test al, al
jne 0x4045f0
mov al, byte [ebp + 0x25]
test al, al
jne 0x4045f0
lea ecx, [esp + 0x28]
push 1
push ecx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor edx, edx
cmp ebx, esi
mov ecx, ebp
setne dl
dec edx
and edx, 0x96
push edx
call fcn.00402850
lea eax, [ebp + 0x481]
push 1
push eax
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x404597
mov al, byte [ebp + 0x25]
test al, al
je 0x404625
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x404625
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x881]
mov al, byte [ebp + 0x481]
and cl, 0xf
cmp al, cl
je 0x404648
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov ebx, dword [ebp + 0xe0]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x484]
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 0x40465d
xor eax, eax
lea ecx, [esp + 0x6c]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x405b44
inc eax
add ecx, 4
cmp eax, 0xb
jl 0x40467e
mov ecx, 8
lea esi, [ebp + 0x881]
lea edi, [ebp + 0x481]
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 0x4046f3
push 0x2336
mov ecx, ebp
call fcn.004016c0
push eax
push ebp
call fcn.00401700
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x45c
ret
mov eax, dword [ebp + 0xf4]
mov esi, dword [esp + 0x70]
cmp eax, esi
jg 0x404705
xor ecx, ecx
jmp 0x404759
cmp eax, dword [esp + 0x74]
jg 0x404712
mov ecx, 1
jmp 0x404759
cmp eax, dword [esp + 0x7c]
jg 0x40471f
mov ecx, 3
jmp 0x404759
cmp eax, dword [esp + 0x80]
jg 0x40472f
mov ecx, 4
jmp 0x404759
cmp eax, dword [esp + 0x88]
jg 0x40473f
mov ecx, 6
jmp 0x404759
cmp eax, dword [esp + 0x8c]
jg 0x40474f
mov ecx, 7
jmp 0x404759
xor ecx, ecx
cmp eax, edi
setg cl
add ecx, 9
mov al, byte [ebp + ecx*2 + 0x484]
mov ebx, 3
mov byte [ebp + 0x88e], al
mov byte [ebp + 0x88c], al
mov byte [ebp + 0x88a], al
mov byte [ebp + 0x888], al
mov byte [ebp + 0x886], al
mov byte [ebp + 0x884], al
mov eax, ecx
cdq
idiv ebx
test edx, edx
je 0x4047c1
mov eax, dword [esp + ecx*4 + 0x6c]
mov ebx, dword [esp + ecx*4 + 0x70]
mov ecx, dword [ebp + 0xf4]
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 0x4047e3
mov eax, 0xfd
jmp 0x4047e3
mov edx, dword [esp + ecx*4 + 0x6c]
mov eax, dword [ebp + 0xf4]
mov ecx, dword [esp + ecx*4 + 0x70]
sub eax, edx
shl eax, 7
sub ecx, edx
cdq
idiv ecx
cmp eax, 3
jge 0x4047e3
mov eax, 3
mov dl, al
mov cl, al
sub dl, 3
sub cl, 2
mov byte [ebp + 0x883], dl
mov byte [ebp + 0x885], cl
mov dl, al
mov cl, al
dec dl
mov byte [ebp + 0x889], al
inc cl
mov byte [ebp + 0x887], dl
add al, 2
mov byte [ebp + 0x88b], cl
mov byte [ebp + 0x88d], al
mov eax, dword [ebp + 0x110]
cmp eax, esi
jg 0x404829
xor ecx, ecx
jmp 0x40487d
cmp eax, dword [esp + 0x74]
jg 0x404836
mov ecx, 1
jmp 0x40487d
cmp eax, dword [esp + 0x7c]
jg 0x404843
mov ecx, 3
jmp 0x40487d
cmp eax, dword [esp + 0x80]
jg 0x404853
mov ecx, 4
jmp 0x40487d
cmp eax, dword [esp + 0x88]
jg 0x404863
mov ecx, 6
jmp 0x40487d
cmp eax, dword [esp + 0x8c]
jg 0x404873
mov ecx, 7
jmp 0x40487d
xor ecx, ecx
cmp eax, edi
setg cl
add ecx, 9
mov al, byte [ebp + ecx*2 + 0x484]
mov esi, 3
mov byte [ebp + 0x89a], al
mov byte [ebp + 0x898], al
mov byte [ebp + 0x896], al
mov byte [ebp + 0x894], al
mov byte [ebp + 0x892], al
mov byte [ebp + 0x890], al
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x4048e5
mov eax, dword [esp + ecx*4 + 0x6c]
mov esi, dword [esp + ecx*4 + 0x70]
mov ecx, dword [ebp + 0x110]
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 0x404907
mov eax, 0xfd
jmp 0x404907
mov edx, dword [esp + ecx*4 + 0x6c]
mov eax, dword [ebp + 0x110]
mov ecx, dword [esp + ecx*4 + 0x70]
sub eax, edx
shl eax, 7
sub ecx, edx
cdq
idiv ecx
cmp eax, 3
jge 0x404907
mov eax, 3
mov dl, al
mov cl, al
sub dl, 3
sub cl, 2
mov byte [ebp + 0x88f], dl
mov dl, al
mov byte [ebp + 0x891], cl
dec dl
mov cl, al
mov byte [ebp + 0x893], dl
mov byte [ebp + 0x895], al
inc cl
add al, 2
mov byte [ebp + 0x897], cl
mov byte [ebp + 0x899], al
mov byte [esp + 0x17], 0
lea eax, [ebp + 0x881]
push 0x1a
push eax
mov ecx, ebp
mov edi, 0x4b0
mov byte [ebp + 0x882], 0xc
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov byte [esp + 0x29], 0xfe
mov byte [esp + 0x28], 0xfe
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x4049d9
mov al, byte [ebp + 0x24]
test al, al
jne 0x4049d9
mov al, byte [ebp + 0x25]
test al, al
jne 0x4049d9
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x404981
mov al, byte [ebp + 0x25]
test al, al
je 0x404a02
mov eax, dword [ebp + 0x1c4]
test eax, eax
jne 0x404638
mov cl, byte [ebp + 0x881]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
jne 0x404638
mov ebx, dword [ebp + 0xe0]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x484]
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 0x404a2a
mov eax, dword [ebp + 0xf4]
mov edx, dword [esp + 0x80]
xor ecx, ecx
cmp eax, edx
jle 0x404b1a
cmp byte [ebp + 0x88d], 0xff
jae 0x404bd6
xor eax, eax
mov al, byte [ebp + 0x883]
add eax, 5
cmp eax, 0xff
jle 0x404a80
mov eax, 0xff
mov byte [ebp + 0x883], al
xor eax, eax
mov al, byte [ebp + 0x885]
add eax, 5
cmp eax, 0xff
jle 0x404a9d
mov eax, 0xff
mov byte [ebp + 0x885], al
xor eax, eax
mov al, byte [ebp + 0x887]
add eax, 5
cmp eax, 0xff
jle 0x404aba
mov eax, 0xff
mov byte [ebp + 0x887], al
xor eax, eax
mov al, byte [ebp + 0x889]
add eax, 5
cmp eax, 0xff
jle 0x404ad7
mov eax, 0xff
mov byte [ebp + 0x889], al
xor eax, eax
mov al, byte [ebp + 0x88b]
add eax, 5
cmp eax, 0xff
jle 0x404af4
mov eax, 0xff
mov byte [ebp + 0x88b], al
xor eax, eax
mov al, byte [ebp + 0x88d]
add eax, 5
cmp eax, 0xff
jle 0x404bcb
mov eax, 0xff
jmp 0x404bcb
cmp eax, dword [esp + 0x6c]
jge 0x404bd6
mov al, byte [ebp + 0x883]
test al, al
jbe 0x404bd6
and eax, 0xff
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x883], al
xor eax, eax
mov al, byte [ebp + 0x885]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x885], al
xor eax, eax
mov al, byte [ebp + 0x887]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x887], al
xor eax, eax
mov al, byte [ebp + 0x889]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x889], al
xor eax, eax
mov al, byte [ebp + 0x88b]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x88b], al
xor eax, eax
mov al, byte [ebp + 0x88d]
lea ecx, [eax - 5]
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x88d], al
mov ecx, 1
mov eax, dword [ebp + 0x110]
mov edx, dword [esp + 0x98]
cmp eax, edx
jle 0x404cab
cmp byte [ebp + 0x899], 0xff
jae 0x404d67
xor eax, eax
mov al, byte [ebp + 0x88f]
add eax, 5
cmp eax, 0xff
jle 0x404c0f
mov eax, 0xff
mov byte [ebp + 0x88f], al
xor eax, eax
mov al, byte [ebp + 0x891]
add eax, 5
cmp eax, 0xff
jle 0x404c2c
mov eax, 0xff
mov byte [ebp + 0x891], al
xor eax, eax
mov al, byte [ebp + 0x893]
add eax, 5
cmp eax, 0xff
jle 0x404c49
mov eax, 0xff
mov byte [ebp + 0x893], al
xor eax, eax
mov al, byte [ebp + 0x895]
add eax, 5
cmp eax, 0xff
jle 0x404c66
mov eax, 0xff
mov byte [ebp + 0x895], al
xor eax, eax
mov al, byte [ebp + 0x897]
add eax, 5
cmp eax, 0xff
jle 0x404c83
mov eax, 0xff
mov byte [ebp + 0x897], al
xor eax, eax
mov al, byte [ebp + 0x899]
add eax, 5
cmp eax, 0xff
jle 0x404ca0
mov eax, 0xff
mov byte [ebp + 0x899], al
jmp 0x404d6b
cmp eax, dword [esp + 0x84]
jge 0x404d67
mov al, byte [ebp + 0x88f]
test al, al
jbe 0x404d67
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 + 0x88f], al
mov cl, byte [ebp + 0x891]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x891], al
mov cl, byte [ebp + 0x893]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x893], al
mov cl, byte [ebp + 0x895]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x895], al
mov cl, byte [ebp + 0x897]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
xor ecx, ecx
mov byte [ebp + 0x897], al
mov cl, byte [ebp + 0x899]
add ecx, 0xfffffffb
xor eax, eax
test ecx, ecx
setl al
dec eax
and eax, ecx
mov byte [ebp + 0x899], al
jmp 0x404d6b
test ecx, ecx
je 0x404d9e
mov al, byte [esp + 0x17]
inc al
cmp al, 4
mov byte [esp + 0x17], al
jae 0x404d9e
jmp 0x404944
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 + 0xf4]
mov dword [esp + 0x10], 0x42c80000
mov dword [esp + 0x20], edi
xor ecx, ecx
fild dword [esp + 0x20]
lea esi, [esp + 0x6c]
mov edx, dword [esi]
mov eax, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fdiv st(1)
fcom dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x404de4
fstp dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
jmp 0x404de6
fstp st(0)
inc ecx
add esi, 4
cmp ecx, 6
jl 0x404dba
mov ebx, dword [ebp + 0x110]
mov edi, dword [esp + 0x54]
fstp st(0)
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0x42c80000
fild dword [esp + 0x18]
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 + 0x18], eax
fild dword [esp + 0x18]
fdiv st(1)
fcom dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x404e3f
fstp dword [esp + 0x10]
mov edi, ecx
jmp 0x404e41
fstp st(0)
inc ecx
add esi, 4
cmp ecx, 0xc
jl 0x404e17
mov eax, dword [esp + 0x1c]
fstp st(0)
mov edx, dword [esp + eax*4 + 0x6c]
mov dword [ebp + 0x114], edx
mov cl, byte [ebp + eax*2 + 0x884]
mov byte [ebp + 0x47f], cl
mov dl, byte [ebp + eax*2 + 0x883]
mov eax, dword [esp + edi*4 + 0x6c]
mov byte [ebp + 0x47e], dl
mov dword [ebp + 0x110], eax
mov cl, byte [ebp + edi*2 + 0x883]
mov byte [ebp + 0x47c], cl
mov dl, byte [ebp + edi*2 + 0x884]
mov byte [ebp + 0x47d], dl
jmp 0x405a9f
lea eax, [ebp + 0x881]
push 6
push eax
mov ecx, ebp
mov byte [esp + 0x31], 0xfe
mov byte [esp + 0x30], 0xfe
mov byte [eax], 0
mov byte [ebp + 0x882], 2
mov byte [ebp + 0x883], 0
mov byte [ebp + 0x884], 0
mov byte [ebp + 0x885], 0x80
mov byte [ebp + 0x886], 0
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
mov edi, 1
mov ecx, ebp
push edi
push 0
call fcn.00401ef0
mov esi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x404f55
mov al, byte [ebp + 0x24]
test al, al
jne 0x404f55
mov al, byte [ebp + 0x25]
test al, al
jne 0x404f55
lea eax, [esp + 0x28]
push edi
push eax
mov ecx, ebp
call fcn.00401ba0
mov eax, dword [ebp + 0xe0]
xor ecx, ecx
cmp eax, esi
setne cl
dec ecx
and ecx, 0x96
push ecx
mov ecx, ebp
call fcn.00402850
lea edx, [ebp + 0x481]
push edi
push edx
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x404efd
mov al, byte [ebp + 0x25]
test al, al
je 0x404f86
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x404f86
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x881]
mov cl, byte [ebp + 0x481]
and al, 0xf
cmp cl, al
je 0x404fa5
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x45c
ret
mov ecx, dword [ebp + 0xe0]
xor eax, eax
mov ah, byte [ebp + 0x483]
mov dword [esp + 0x1c], 0
mov al, byte [ebp + 0x484]
imul eax, ecx
cdq
sub eax, edx
mov esi, eax
xor eax, eax
mov ah, byte [ebp + 0x485]
mov al, byte [ebp + 0x486]
imul eax, ecx
mov ecx, dword [ebp + 0x118]
shl ecx, 5
cdq
mov ecx, dword [ecx + 0x41d480]
sub eax, edx
and ecx, 0x7f8000
sar esi, 1
sar eax, 1
cmp ecx, 0x198000
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
je 0x40500e
cmp ecx, 0x1a0000
jne 0x405025
cmp eax, 0x112a880
jge 0x405025
add esi, esi
add eax, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0xf4]
xor ecx, ecx
mov edx, edi
mov ebx, dword [esp + 0x10]
cmp edx, esi
jge 0x405049
inc ebx
add edx, edi
cmp ebx, 0x40
mov dword [esp + 0x10], ebx
jl 0x405033
jmp 0x405073
imul edi, ebx
sub eax, esi
sub edi, esi
cdq
and edx, 0x7f
add eax, edx
mov ecx, eax
mov eax, edi
cdq
sar ecx, 7
idiv ecx
mov ecx, 0xff
cmp eax, 0xff
jg 0x40506e
mov ecx, eax
cmp ebx, 0x40
jl 0x40507b
mov dword [esp + 0x10], 0x3f
test ecx, ecx
jne 0x405086
mov ecx, 1
jmp 0x405093
cmp ecx, 0xff
jne 0x405093
mov ecx, 0xfe
mov al, cl
lea edx, [ebp + 0x881]
dec al
mov byte [ebp + 0x882], 0xc
mov byte [edx], 0
mov byte [ebp + 0x883], al
mov byte [ebp + 0x884], 0
mov byte [ebp + 0x885], al
mov byte [ebp + 0x886], 1
mov byte [ebp + 0x887], al
mov byte [ebp + 0x888], 2
mov byte [ebp + 0x889], al
mov byte [ebp + 0x88a], 3
mov byte [ebp + 0x88b], cl
mov byte [ebp + 0x88c], 0
mov byte [ebp + 0x88d], cl
mov byte [ebp + 0x88e], 1
mov byte [ebp + 0x88f], cl
mov byte [ebp + 0x890], 2
mov byte [ebp + 0x891], cl
inc cl
mov byte [ebp + 0x892], 3
mov byte [ebp + 0x893], cl
mov byte [ebp + 0x894], 0
mov byte [ebp + 0x895], cl
mov byte [ebp + 0x896], 1
mov byte [ebp + 0x897], cl
mov byte [ebp + 0x898], 2
mov byte [ebp + 0x899], cl
push 0x1a
push edx
mov ecx, ebp
mov byte [ebp + 0x89a], 3
call fcn.00401d50
push 0x1388
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov edi, 0x4b0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x4051c3
mov al, byte [ebp + 0x24]
test al, al
jne 0x4051c3
mov al, byte [ebp + 0x25]
test al, al
jne 0x4051c3
lea edx, [esp + 0x28]
push 1
push edx
mov ecx, ebp
call fcn.00401ba0
mov ebx, dword [ebp + 0xe0]
xor eax, eax
cmp ebx, edi
mov ecx, ebp
setne al
dec eax
and eax, 0x96
push eax
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x40516b
mov al, byte [ebp + 0x25]
test al, al
je 0x4051f8
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x4051f8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x881]
mov al, byte [esi]
and cl, 0xf
cmp al, cl
je 0x405217
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov edi, dword [ebp + 0xe0]
lea esi, [esp + 0x6c]
lea ecx, [ebp + 0x484]
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 + 0x1c]
sar eax, 1
test edx, edx
mov dword [esi], eax
je 0x40524a
lea edx, [eax + eax]
mov dword [esi], edx
add ecx, 2
add esi, 4
dec ebx
jne 0x40522c
mov edx, dword [esp + 0x10]
or ebx, 0xffffffff
xor esi, esi
imul edx, dword [ebp + 0xf4]
lea edi, [esp + 0x6c]
mov ecx, dword [edi]
cmp edx, ecx
jl 0x405273
mov eax, edx
sub eax, ecx
jmp 0x405277
sub ecx, edx
mov eax, ecx
cmp eax, ebx
jae 0x405281
mov dword [esp + 0x18], esi
mov ebx, eax
inc esi
add edi, 4
cmp esi, 0xc
jl 0x405267
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4052a7
cmp ecx, 2
jge 0x4052a7
mov dword [esp + 0x10], 2
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + esi*4 + 0x6c]
cdq
idiv ecx
mov dl, cl
shl dl, 2
mov dword [ebp + 0x114], eax
mov al, byte [ebp + esi*2 + 0x884]
and al, 3
add al, dl
mov byte [ebp + 0x47f], al
jmp 0x403a6a
mov cl, byte [ebp + 0x4b4]
lea esi, [ebp + 0x896]
lea edi, [ebp + 0x881]
mov byte [esp + 0x29], 0x7f
mov byte [esi], cl
mov dl, byte [ebp + 0x4b5]
mov byte [ebp + 0x897], dl
mov al, byte [ebp + 0x4b6]
mov byte [ebp + 0x898], al
mov cl, byte [ebp + 0x4b7]
mov byte [ebp + 0x899], cl
mov dl, byte [ebp + 0x4b8]
mov byte [ebp + 0x89a], dl
mov al, byte [ebp + 0x4b9]
mov byte [ebp + 0x89b], al
mov cl, byte [ebp + 0x4ba]
mov byte [ebp + 0x89c], cl
mov eax, esi
mov byte [ebp + 0x89e], 0xff
mov byte [ebp + 0x89d], 0xff
mov ecx, dword [eax]
lea edx, [ebp + 0x882]
mov byte [esp + 0x28], 0x7f
mov byte [esp + 0x32], 0x14
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov byte [esp + 0x33], 0xe
mov byte [esp + 0x35], 0x12
mov dword [edx + 4], ecx
mov ax, word [eax + 8]
mov byte [esp + 0x37], 6
mov byte [esp + 0x38], 6
mov word [edx + 8], ax
mov al, 0x10
mov byte [esp + 0x30], al
mov byte [esp + 0x31], al
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 + 0xe0]
cmp eax, 0x12c0
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 0x40543f
je 0x405438
cmp eax, 0x4b0
je 0x405434
cmp eax, 0x960
jne 0x405446
mov eax, 7
jmp 0x405452
xor eax, eax
jmp 0x405452
mov eax, 0xe
jmp 0x405452
cmp eax, 0x2580
je 0x40544d
mov eax, 0x1c
jmp 0x405452
mov eax, 0x15
mov ecx, dword [ebp + 0xf4]
cmp ecx, 0x5b8d80
jle 0x405461
inc eax
cmp ecx, 0x802c80
jle 0x40546a
inc eax
cmp ecx, 0xb71b00
jle 0x405473
inc eax
cmp ecx, 0x1036640
jle 0x40547c
inc eax
cmp ecx, 0x16e3600
jle 0x405485
inc eax
cmp ecx, 0x206cc80
jle 0x40548e
inc eax
mov cl, byte [esp + eax + 0x30]
mov byte [ebp + 0x88b], cl
mov byte [ebp + 0x88c], 6
mov eax, dword [ebp + 0xf4]
cmp eax, 0x7270e0
jg 0x4054b5
xor al, al
xor dl, dl
jmp 0x40565b
cmp eax, 0x989680
jg 0x40562d
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 + 0x891], al
mov byte [ebp + 0x88d], al
mov al, byte [esp + 0x17]
mov byte [ebp + 0x88e], bl
shl dl, 6
mov byte [ebp + 0x892], al
mov byte [ebp + 0x893], 2
mov al, dl
mov dl, byte [esp + 0x27]
mov byte [ebp + 0x88f], 2
mov byte [ebp + 0x894], 0
or al, 0x18
mov byte [ebp + 0x890], 0
mov byte [ebp + 0x899], al
mov byte [ebp + 0x895], al
mov byte [esi], dl
mov byte [ebp + 0x89a], cl
mov byte [ebp + 0x89b], 2
mov byte [ebp + 0x897], 2
mov byte [ebp + 0x89c], 0
mov byte [ebp + 0x898], 0
mov eax, dword [ebp + 0x110]
cmp eax, 0x1312d00
mov al, 0x58
jl 0x40555b
mov al, 0x98
mov byte [ebp + 0x8a1], al
mov byte [ebp + 0x89d], al
mov byte [ebp + 0x89e], 0
mov byte [ebp + 0x8a2], 0x80
mov byte [ebp + 0x8a3], 2
push 0x24
mov byte [ebp + 0x89f], 2
push edi
mov ecx, ebp
mov byte [ebp + 0x8a4], 0
mov byte [ebp + 0x8a0], 0
call fcn.00401d50
push 0x7d0
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x4055f8
mov al, byte [ebp + 0x24]
test al, al
jne 0x4055f8
mov al, byte [ebp + 0x25]
test al, al
jne 0x4055f8
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401ba0
push 0
mov ecx, ebp
call fcn.00402850
lea ecx, [ebp + 0x481]
push 1
push ecx
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x4055b2
mov al, byte [ebp + 0x25]
test al, al
je 0x40567b
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x40567b
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
cmp eax, 0xe4e1c0
jg 0x40563a
mov al, 1
mov dl, al
jmp 0x40565b
cmp eax, 0x1406f40
jg 0x40564a
mov al, 1
mov dl, 2
jmp 0x4054c4
cmp eax, 0x1d905c0
jg 0x405657
mov al, 2
mov dl, al
jmp 0x40565b
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 0x4054d2
cmp byte [ebp + 0x481], 0x65
je 0x405694
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov eax, dword [ebp + 0xe0]
cmp eax, 0x1c200
jne 0x4056ae
mov dword [esp + 0x10], 0x835
jmp 0x40573c
cmp eax, 0xe100
jne 0x4056bf
mov dword [esp + 0x10], 0x820
jmp 0x40573c
cmp eax, 0x9600
jne 0x4056d0
mov dword [esp + 0x10], 0x81b
jmp 0x40573c
cmp eax, 0x7080
jne 0x4056e1
mov dword [esp + 0x10], 0x818
jmp 0x40573c
cmp eax, 0x4b00
jne 0x4056f2
mov dword [esp + 0x10], 0x816
jmp 0x40573c
cmp eax, 0x3840
jne 0x405703
mov dword [esp + 0x10], 0x814
jmp 0x40573c
cmp eax, 0x2580
jne 0x405714
mov dword [esp + 0x10], 0x814
jmp 0x40573c
cmp eax, 0x12c0
jne 0x405725
mov dword [esp + 0x10], 0x812
jmp 0x40573c
cmp eax, 0x960
mov dword [esp + 0x10], 0x80f
je 0x40573c
mov dword [esp + 0x10], 0x80d
xor ecx, ecx
lea esi, [esp + 0x5c]
mov ch, byte [ebp + 0x4a3]
mov ebx, 4
mov cl, byte [ebp + 0x4a4]
imul ecx, eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
mov cl, byte [ebp + 0x4a2]
shr eax, 0x1f
mov byte [ebp + 0x47c], cl
lea ecx, [ebp + 0x490]
lea eax, [edx + eax + 6]
imul eax, dword [esp + 0x10]
mov dword [ebp + 0x110], eax
mov edi, dword [ebp + 0xe0]
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 0x40578c
mov esi, dword [ebp + 0xf4]
mov dword [esp + 0x1c], 0x42c80000
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
xor ecx, ecx
lea edi, [esp + 0x5c]
mov edx, dword [edi]
mov eax, esi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fdiv st(1)
fcom dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x405802
fstp dword [esp + 0x1c]
mov ebx, ecx
jmp 0x405804
fstp st(0)
inc ecx
add edi, 4
cmp ecx, 4
jl 0x4057da
cmp ebx, 2
fstp st(0)
jge 0x405869
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
xor eax, eax
sub ecx, edi
mov al, byte [ebp + 0x48e]
xor edx, edx
mov dl, byte [ebp + 0x492]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
sub edx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
xor ebx, ebx
fidiv dword [esp + 0x18]
mov bl, byte [ebp + 0x48d]
mov dword [esp + 0x1c], ebx
fild dword [esp + 0x20]
fmul st(1)
call sub.MSVCRT.dll__ftol
sub eax, edi
add eax, esi
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
jmp 0x4058bc
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
xor eax, eax
sub ecx, edi
mov al, byte [ebp + 0x496]
xor edx, edx
mov dl, byte [ebp + 0x49a]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
sub edx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
xor ebx, ebx
fidiv dword [esp + 0x18]
mov bl, byte [ebp + 0x495]
mov dword [esp + 0x1c], ebx
fild dword [esp + 0x20]
fmul st(1)
call sub.MSVCRT.dll__ftol
sub eax, edi
add eax, esi
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fdiv st(1)
call sub.MSVCRT.dll__ftol
sub eax, 5
fstp st(0)
jns 0x4058ce
xor eax, eax
jmp 0x4058da
cmp eax, 0xf4
jle 0x4058da
mov eax, 0xf4
mov byte [ebp + 0x88c], 0xb
mov cl, byte [ebp + 0x88c]
xor edx, edx
test cl, cl
jbe 0x40591a
lea ecx, [ebp + 0x88e]
jmp 0x4058f9
mov ebx, dword [esp + 0x1c]
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 + 0x88c]
add ecx, 4
cmp edx, ebx
jl 0x4058f5
lea eax, [ebp + 0x881]
push 0x38
push eax
mov ecx, ebp
call fcn.00401d50
push 0x7d0
mov ecx, ebp
call fcn.00402160
push 1
push 0
mov ecx, ebp
call fcn.00401ef0
push 0xfa0
mov ecx, ebp
call fcn.00402160
mov al, byte [ebp + 0x23]
test al, al
je 0x404d7e
mov ecx, ebp
call fcn.00402180
test al, al
jne 0x404d8e
mov al, byte [ebp + 0x20]
test al, al
jne 0x405993
mov al, byte [ebp + 0x24]
test al, al
jne 0x405993
mov al, byte [ebp + 0x25]
test al, al
jne 0x405993
lea eax, [esp + 0x28]
push 1
push eax
mov ecx, ebp
call fcn.00401ba0
push 0
mov ecx, ebp
call fcn.00402850
lea esi, [ebp + 0x481]
push 1
push esi
mov ecx, ebp
call fcn.00401ef0
test al, al
je 0x40594d
mov al, byte [ebp + 0x25]
test al, al
je 0x4059c8
mov eax, dword [ebp + 0x1c4]
test eax, eax
je 0x4059c8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
cmp byte [esi], 0x65
je 0x4059dd
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x48d]
mov dword [esp + 0x1c], 0x42c80000
mov byte [ebp + 0x47f], cl
mov ebx, dword [ebp + 0xf4]
mov dword [esp + 0x20], ebx
mov edi, ebx
fild dword [esp + 0x20]
lea esi, [ebp + 0x490]
mov dword [esp + 0x18], 0xb
xor ecx, ecx
mov eax, 0x1b4e81b5
mov ch, byte [esi - 1]
mov cl, byte [esi]
imul ecx, dword [ebp + 0xe0]
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 + 0x20], eax
fild dword [esp + 0x20]
fdiv st(1)
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x405a85
mov dl, byte [esi - 2]
mov edi, ecx
mov byte [ebp + 0x47e], dl
mov ebx, dword [ebp + 0xf4]
mov eax, ebx
mov dword [esp + 0x20], ebx
sub eax, ecx
cdq
fstp st(0)
fild dword [esp + 0x20]
xor eax, edx
sub eax, edx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv st(1)
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add esi, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x405a0f
fstp st(0)
mov dword [ebp + 0x114], 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 [0x4261d4]
fstp qword [esp]
push 0x42f6b4
push ebp
call fcn.00401700
fild dword [ebp + 0x114]
fild dword [ebp + 0xf4]
add esp, 8
mov ecx, ebp
fld st(1)
fsub st(1)
sub esp, 8
fdiv st(1)
fmul dword [0x4261d0]
fstp qword [esp + 8]
fstp st(0)
fmul qword [0x4261c8]
fstp qword [esp]
push 0x2337
call fcn.004016c0
push eax
push ebp
call fcn.00401700
mov byte [ebp + 0x38], 1
add esp, 0x18
fild dword [ebp + 0xf4]
fild dword [ebp + 0x114]
pop edi
pop esi
xor eax, eax
fsub st(1)
fdiv st(1)
fmul dword [0x4261d0]
fstp dword [ebp + 0x1b4]
pop ebp
pop ebx
fstp st(0)
add esp, 0x45c
ret
mov eax, dword [ebp + 0x118]
shl eax, 5
mov eax, dword [eax + 0x41d480]
and eax, 0x7f8000
cmp eax, 0xc8000
je 0x405c8b
cmp eax, 0xe0000
je 0x405c8b
mov byte [ebp + 0x47d], 0x40
mov cl, byte [ebp + 0x400]
xor edx, edx
mov byte [ebp + 0x47c], cl
mov dh, byte [ebp + 0x409]
mov dl, byte [ebp + 0x40a]
imul edx, dword [ebp + 0xe0]
mov dword [ebp + 0x110], edx
mov eax, dword [ebp + 0x118]
shl eax, 5
mov ecx, dword [eax + 0x41d480]
and ecx, 0x7f8000
cmp ecx, 0x168000
jb 0x405c3f
mov dl, byte [ebp + 0x486]
mov byte [ebp + 0x47e], dl
mov eax, dword [ebp + 0x174]
cmp eax, 0x74
jl 0x405bf2
mov al, byte [ebp + 0x487]
mov cl, byte [ebp + 0x488]
shr al, 4
and al, 3
shl cl, 2
add al, cl
mov byte [ebp + 0x47f], al
jmp 0x405c0b
mov dl, byte [ebp + 0x488]
mov al, byte [ebp + 0x487]
shl dl, 2
and al, 3
add dl, al
mov byte [ebp + 0x47f], dl
xor ecx, ecx
xor edx, edx
mov ch, byte [ebp + 0x482]
mov dh, byte [ebp + 0x484]
mov cl, byte [ebp + 0x483]
mov dl, byte [ebp + 0x485]
shl ecx, 0x10
or ecx, edx
pop edi
mov dword [ebp + 0x114], ecx
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x45c
ret
mov al, byte [ebp + 0x4a7]
xor edx, edx
mov byte [ebp + 0x47e], al
mov cl, byte [ebp + 0x4a8]
mov byte [ebp + 0x47f], cl
mov dh, byte [ebp + 0x404]
mov dl, byte [ebp + 0x405]
xor eax, eax
mov ah, byte [ebp + 0x406]
pop edi
mov al, byte [ebp + 0x407]
pop esi
shl edx, 0x10
or edx, eax
xor eax, eax
mov dword [ebp + 0x114], edx
pop ebp
pop ebx
add esp, 0x45c
ret
mov cl, byte [ebp + 0x417]
xor eax, eax
mov byte [ebp + 0x47c], cl
mov ah, byte [ebp + 0x3ff]
mov al, byte [ebp + 0x400]
imul eax, dword [ebp + 0xe0]
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 + 0x110], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x45c
ret