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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
xor eax, eax
mov dword [ebp - 0x38], edx
and dword [ebp - 0x54], eax
and dword [ebp - 0xc], eax
and dword [ebp - 0x34], eax
and dword [ebp - 0x48], eax
and dword [ebp - 0x5c], eax
and dword [ebp - 0x58], eax
mov edx, dword [ebp + 0x10]
push ebx
mov ebx, ecx
mov dword [ebp - 0x28], eax
mov ecx, 0x4fc
mov dword [ebp - 0x10], ebx
cmp edx, ecx
push esi
mov esi, dword [ebx + 0x80]
cmovg edx, ecx
and dword [ebx + 0xfd0], eax
push edi
mov edi, dword [ebp + 8]
imul eax, edi, 0x190
mov dword [ebp - 0x30], edx
cmp eax, esi
je 0x463c17
imul eax, edi, 0xc8
cmp eax, esi
je 0x463c17
imul eax, edi, 0x64
cmp eax, esi
je 0x463c17
imul ecx, edi, 0x32
cmp ecx, esi
je 0x463c17
imul eax, edi, 0x19
cmp eax, esi
je 0x463c17
imul eax, esi, 3
cmp ecx, eax
je 0x463c17
or eax, 0xffffffff
jmp 0x465034
test edx, edx
jle 0x463c0f
mov eax, dword [ebx + 4]
add eax, ebx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx]
add eax, ebx
cmp dword [ebx + 0x5c], 0x803
mov dword [ebp - 0x1c], eax
jne 0x463c39
and dword [ebp - 0x2c], 0
jmp 0x463c3f
mov eax, dword [ebx + 0x64]
mov dword [ebp - 0x2c], eax
push edx
mov edx, edi
mov ecx, ebx
call fcn.00463b43
pop ecx
mov ecx, eax
mov eax, esi
cdq
idiv edi
mov esi, dword [ebp - 0x30]
push 0x32
pop edx
mov edi, eax
mov dword [ebx + 0x8c], ecx
push 3
pop eax
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x44], edx
cmp esi, eax
jl 0x464fd0
imul eax, edi, 0x18
cmp ecx, eax
jl 0x464fd0
cmp edi, edx
jge 0x463c9b
mov eax, edi
imul eax, esi
cmp eax, 0x12c
jl 0x464fd0
cmp ecx, 0x960
jl 0x464fd0
cmp dword [ebx + 0x84], 0
jne 0x463cca
lea eax, [ecx + edi*4]
mov ecx, edi
shl ecx, 3
cdq
idiv ecx
push 0x32
cmp eax, esi
pop edx
cmovge eax, esi
mov esi, eax
mov ecx, esi
mov dword [ebp - 0x30], esi
imul ecx, edi
shl ecx, 3
mov dword [ebx + 0x8c], ecx
sub edx, edi
mov eax, edi
imul eax, esi
imul edx, edx, 0x3c
shl eax, 3
add edx, ecx
mov dword [ebp - 0x40], eax
cmp dword [ebx + 0x6c], 0xbb9
mov dword [ebp - 0x24], edx
jne 0x463ced
push 0x7f
pop edi
jmp 0x463d1c
cmp dword [ebx + 0x6c], 0xbba
jne 0x463cfa
xor edi, edi
jmp 0x463d1c
mov eax, dword [ebx + 0x7c]
test eax, eax
js 0x463d0c
imul edi, eax, 0x147
sar edi, 8
jmp 0x463d1c
cmp dword [ebx + 0x5c], 0x800
push 0x30
pop edi
push 0x73
pop eax
cmove edi, eax
mov eax, dword [ebx + 0x68]
lea esi, [ebx + 0x60]
mov dword [ebp - 8], esi
push 2
pop ecx
cmp eax, 0xfffffc18
je 0x463d33
cmp dword [esi], ecx
je 0x463d6b
mov eax, dword [esi]
mov dword [ebp - 8], esi
cmp eax, ecx
jne 0x463d6b
mov eax, edi
mov dword [ebp - 0x18], 0x9c40
imul eax, edi
imul ecx, eax, 0xffffd8f0
mov eax, 0x7d00
sar ecx, 0xe
cmp dword [ebx + 0x98], 2
cmovne eax, dword [ebp - 0x18]
add ecx, eax
xor eax, eax
cmp edx, ecx
setg al
inc eax
mov dword [ebx + 0x98], eax
mov esi, 0x3ea
cmp dword [ebx + 0x5c], 0x803
mov dword [ebp - 0x18], 0x64
je 0x463e2b
mov ecx, dword [ebx + 0x78]
cmp ecx, 0xfffffc18
jne 0x463e12
mov ecx, dword [ebx + 0xb8]
mov eax, edi
imul eax, edi
imul eax, eax, 0x5dc0
sar eax, 0xe
add eax, 0x5dc0
cmp ecx, esi
jne 0x463db9
sub eax, 0xfa0
jmp 0x463dc2
test ecx, ecx
jle 0x463dc2
add eax, 0xfa0
cmp edx, eax
mov ecx, 0x3e8
cmovge ecx, esi
cmp dword [ebx + 0x30], 0
mov dword [ebx + 0xb4], ecx
je 0x463df6
mov eax, 0x80
sub eax, edi
sar eax, 4
cmp dword [ebx + 0x28], eax
mov eax, 0x3e8
jle 0x463dfb
mov dword [ebx + 0xb4], eax
mov ecx, eax
jmp 0x463dfb
mov eax, 0x3e8
cmp dword [ebx + 0x34], 0
je 0x463e18
push 0x64
pop edx
cmp edi, edx
jle 0x463e18
mov dword [ebx + 0xb4], eax
mov ecx, eax
jmp 0x463e18
mov dword [ebx + 0xb4], ecx
cmp ecx, esi
je 0x463e33
mov eax, dword [ebx + 0x80]
cdq
idiv dword [ebp - 0x18]
cmp dword [ebp + 8], eax
jge 0x463e33
mov ecx, esi
mov dword [ebx + 0xb4], esi
xor edx, edx
inc edx
cmp dword [ebx + 0x98], edx
jne 0x463e65
push 2
pop eax
cmp dword [ebx + 0xbc], eax
jne 0x463e65
cmp dword [ebx + 0x40], 0
jne 0x463e65
cmp ecx, esi
je 0x463e65
cmp dword [ebx + 0xb8], esi
je 0x463e65
mov dword [ebx + 0x98], eax
mov eax, edx
jmp 0x463e67
xor eax, eax
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
jle 0x463e8a
mov eax, dword [ebx + 0xb4]
cmp eax, esi
je 0x463f3c
cmp ecx, esi
je 0x463f44
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
xor eax, eax
inc eax
cmp dword [ebx + 0xc8], 0
je 0x463eab
and dword [ebx + 0xc8], 0
mov edx, eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x60], 0x640
test edx, edx
je 0x463f05
mov eax, dword [ebx + 0x80]
mov ecx, 0xc8
cdq
idiv ecx
mov ecx, eax
add esi, eax
imul ecx, dword [ebp - 0x30]
mov eax, ecx
cdq
idiv esi
mov ecx, eax
mov eax, 0x101
cmp ecx, eax
cmovg ecx, eax
cmp dword [ebx + 0x84], 0
mov dword [ebp - 0x34], ecx
je 0x463eff
mov eax, dword [ebx + 0x8c]
mov esi, 0x640
cdq
idiv esi
cmp ecx, eax
cmovge ecx, eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebx + 0xb8]
mov esi, dword [ebx + 0xb4]
mov edx, 0x3ea
mov dword [ebp - 0x14], esi
mov eax, esi
cmp esi, edx
je 0x463f8b
cmp ecx, edx
jne 0x463f8b
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x23c]
call fcn.00458eee
mov eax, dword [ebx + 0xb4]
xor esi, esi
inc esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x54], esi
jmp 0x463f8e
cmp ecx, esi
je 0x463e8a
xor ebx, ebx
mov dword [ebp - 0xc], edx
cmp eax, esi
setne bl
mov dword [ebp - 0x48], ebx
mov ebx, dword [ebp - 0x10]
jne 0x463e8d
mov eax, dword [ebx + 0x80]
push 0x64
pop esi
cdq
idiv esi
mov esi, dword [ebp + 8]
cmp esi, eax
jl 0x463f81
mov edx, dword [ebp - 0xc]
xor eax, eax
inc eax
mov dword [ebx + 0xb4], ecx
mov dword [ebp - 0x5c], eax
jmp 0x463e93
xor edx, edx
mov dword [ebp - 0xc], edx
jmp 0x463e90
xor esi, esi
inc esi
cmp eax, 0x3ea
je 0x463fa8
cmp dword [ebx + 0xcc], 0
jne 0x463fa8
cmp dword [ebx + 0x4c], 0
je 0x46408c
mov dword [ebp - 0x18], 0x451
cmp eax, 0x3ea
je 0x463fda
mov eax, dword [ebx + 0x2c]
add eax, 0x2d
imul eax, dword [ebp - 0x24]
push 0x32
pop ecx
cdq
idiv ecx
cmp dword [ebx + 0x84], 0
mov dword [ebp - 0x24], eax
jne 0x463fda
sub eax, 0x3e8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
cmp dword [eax], 2
jne 0x463ff3
cmp dword [ebx + 0x68], esi
je 0x463ff3
mov ecx, 0x5511c0
mov edx, 0x551220
jmp 0x463ffd
mov ecx, 0x5511a0
mov edx, 0x5511f0
lea esi, [ebp - 0xb0]
sub edx, ecx
push 8
sub esi, ecx
pop ebx
mov eax, dword [ecx]
sub eax, dword [edx + ecx]
imul eax, edi
imul eax, edi
sar eax, 0xe
add eax, dword [edx + ecx]
mov dword [esi + ecx], eax
lea ecx, [ecx + 4]
sub ebx, 1
jne 0x46400a
mov ebx, dword [ebp - 0x10]
lea ecx, [ebp - 0x94]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
mov esi, dword [ebx + 0xcc]
mov eax, dword [ecx - 4]
test esi, esi
jne 0x464050
cmp dword [ebx + 0xc4], edx
jl 0x46404e
sub eax, dword [ecx]
jmp 0x464050
add eax, dword [ecx]
cmp edi, eax
jge 0x464060
dec edx
sub ecx, 8
cmp edx, 0x44d
jg 0x46403b
mov dword [ebx + 0xc4], edx
mov edi, 0x44f
test esi, esi
jne 0x464091
cmp dword [ebx + 0xb4], 0x3ea
je 0x464091
cmp dword [ebx + 0x50], esi
jne 0x464091
cmp edx, edi
jle 0x464091
mov dword [ebx + 0xc4], edi
jmp 0x464091
mov edi, 0x44f
mov ecx, dword [ebx + 0xc4]
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jle 0x4640a6
mov dword [ebx + 0xc4], eax
mov ecx, eax
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x24], eax
cmp eax, 0xfffffc18
je 0x4640bb
mov dword [ebx + 0xc4], eax
mov ecx, eax
cmp dword [ebx + 0xb4], 0x3ea
mov eax, ecx
je 0x4640df
cmp dword [ebp - 0x40], 0x3a98
jge 0x4640df
cmp ecx, edi
mov eax, edi
cmovl eax, ecx
mov dword [ebx + 0xc4], eax
mov edx, dword [ebx + 0x80]
mov ecx, eax
mov esi, 0x450
cmp edx, 0x5dc0
jg 0x464100
cmp eax, esi
jle 0x464100
mov dword [ebx + 0xc4], esi
mov ecx, esi
mov eax, ecx
cmp edx, 0x3e80
jg 0x464116
cmp ecx, edi
jle 0x464116
mov dword [ebx + 0xc4], edi
mov eax, edi
mov esi, 0x2ee0
mov ecx, eax
cmp edx, esi
jg 0x464132
mov esi, 0x44e
cmp eax, esi
jle 0x464132
mov dword [ebx + 0xc4], esi
mov ecx, esi
mov eax, 0x1f40
mov esi, ecx
cmp edx, eax
jg 0x464153
mov eax, 0x44d
cmp ecx, eax
jle 0x46414e
mov dword [ebx + 0xc4], eax
mov esi, eax
mov eax, 0x1f40
mov ecx, edx
shl ecx, 3
push 0x32
pop edx
cmp dword [ebp - 0x50], edx
mov edx, 0x2ee0
mov dword [ebp - 0x18], ecx
cmovg eax, edx
imul eax, dword [ebp + 8]
cdq
idiv ecx
cmp dword [ebp - 0x30], eax
jge 0x464185
mov eax, 0x3ea
mov dword [ebx + 0xb4], eax
mov dword [ebp - 0x14], eax
jmp 0x46418b
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0x20], esi
cmp eax, 0x3ea
jne 0x4641a9
mov dword [ebp - 0x20], esi
cmp esi, 0x44e
jne 0x4641a9
mov dword [ebx + 0xc4], edi
mov dword [ebp - 0x20], edi
mov ecx, dword [ebx + 0x80]
mov eax, ecx
push 0x32
pop esi
cdq
idiv esi
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0x14]
cmp edx, eax
jle 0x46431a
cmp esi, 0x3ea
je 0x4641d8
mov eax, dword [ebp - 0x20]
cmp eax, edi
jle 0x46431d
mov eax, ecx
cdq
push 0x19
pop ecx
idiv ecx
xor ecx, ecx
cmp dword [ebp + 8], eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x10]
setg cl
add eax, 0xfffffffd
add ecx, 2
cdq
idiv ecx
mov edx, 0x4fc
mov dword [ebp - 0x18], ecx
cmp eax, edx
cmovg eax, edx
mov dword [ebp - 0x28], eax
imul eax, ecx
call fcn.004ee0f0
mov eax, dword [ebx + 0x78]
mov edx, esp
mov ecx, dword [ebx + 0x40]
and dword [ebp - 0x1e0], 0
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0x70], eax
mov eax, dword [ebx + 0x98]
mov dword [ebp - 0x3c], edx
mov dword [ebx + 0x78], esi
mov dword [ebx + 0x68], eax
mov dword [ebp - 0x4c], ecx
test ecx, ecx
je 0x46424b
xor edi, edi
inc edi
mov dword [ebx + 0x68], edi
jmp 0x464251
mov dword [ebx + 0xbc], eax
mov edi, dword [ebp - 0x18]
xor esi, esi
mov eax, dword [ebp - 0x28]
and dword [ebx + 0x40], 0
cmp dword [ebp - 0x5c], 0
je 0x46427d
mov ecx, dword [ebp + 8]
xor eax, eax
cmp ecx, dword [ebp - 0x54]
setg al
inc eax
cmp esi, eax
mov eax, dword [ebp - 0x28]
jne 0x46427d
mov dword [ebx + 0x78], 0x3ea
mov ecx, dword [ebx + 0x80]
push eax
push edx
mov eax, ecx
cdq
idiv dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 8]
push 0x32
mov eax, dword [eax]
imul eax, ecx
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp - 0x38]
imul eax, esi
lea edx, [ecx + eax*4]
mov ecx, ebx
call fcn.00463b95
add esp, 0xc
test eax, eax
js 0x464312
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x1e4]
push eax
call fcn.00469827
pop ecx
test eax, eax
js 0x464312
mov edx, dword [ebp - 0x3c]
inc esi
mov eax, dword [ebp - 0x28]
add edx, eax
mov dword [ebp - 0x3c], edx
cmp esi, edi
jl 0x464259
push dword [ebp + 0x10]
xor edx, edx
lea ecx, [ebp - 0x1e4]
push dword [ebp + 0xc]
push dword [ebp - 0x1e0]
call fcn.004698c5
add esp, 0xc
test eax, eax
js 0x464312
mov ecx, dword [ebp - 0x40]
mov dword [ebx + 0x78], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebx + 0x70], ecx
mov ecx, dword [ebp - 0x50]
mov dword [ebx + 0x68], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebx + 0x40], ecx
jmp 0x465034
push 0xfffffffffffffffd
pop eax
jmp 0x465034
mov eax, dword [ebp - 0x20]
mov ecx, 0x3e8
cmp esi, ecx
jne 0x464333
cmp eax, edi
jle 0x464345
lea esi, [ecx + 1]
mov dword [ebx + 0xb4], esi
cmp esi, 0x3e9
jne 0x464345
cmp eax, edi
jg 0x464345
mov dword [ebx + 0xb4], ecx
mov eax, dword [ebx + 0x8c]
imul eax, edx
mov esi, dword [ebp - 0x30]
cdq
idiv dword [ebp - 0x18]
mov edx, esi
sub edx, dword [ebp - 0x34]
cmp edx, eax
mov dword [ebp - 0x18], edx
mov ecx, edx
cmovge ecx, eax
lea eax, [esi - 1]
dec ecx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp + 0xc]
inc ecx
mov edx, ecx
mov dword [ebp - 0x24], ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.0045a0e6
mov eax, dword [ebp - 8]
add esp, 4
mov esi, dword [eax]
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2c]
imul eax, esi
shl eax, 2
call fcn.004ee0f0
imul esi, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x14], esp
test esi, esi
jle 0x4643d4
mov edx, dword [ebp - 8]
mov edi, esp
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebx + 0x94]
sub eax, esi
imul eax, dword [edx]
add eax, ecx
fld dword [ebx + eax*4 + 0xd0]
fstp dword [edi + ecx*4]
mov eax, dword [edx]
inc ecx
imul eax, esi
cmp ecx, eax
jl 0x4643ae
mov edi, 0x44f
cmp dword [ebx + 0xb4], 0x3ea
jne 0x4643ef
push 0x3c
pop ecx
call fcn.0045cb82
mov esi, eax
shl esi, 8
jmp 0x4643f5
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax + 8]
mov edx, dword [ebx + 0xa0]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul eax, esi, 0x3d7
sar ecx, 0x10
add ecx, edx
add ecx, eax
cmp dword [ebx + 0x5c], 0x800
mov eax, dword [ebp - 8]
mov dword [ebx + 0xa0], ecx
mov edx, dword [eax]
jne 0x4644df
push dword [ebx + 0x80]
lea eax, [ebx + 0xa4]
sar ecx, 8
push edx
push dword [ebp + 8]
imul edx, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x14]
lea eax, [eax + edx*4]
push eax
call fcn.0045cbe8
mov ecx, dword [ebp - 0x38]
mov edx, eax
call fcn.0046384c
mov eax, dword [ebp - 8]
add esp, 0x14
mov edx, dword [ebp + 8]
mov esi, dword [ebx + 0xb4]
cmp esi, 0x3ea
je 0x46482f
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
imul eax, edx
add eax, eax
call fcn.004ee0f0
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x50]
mov dword [ebp + 0x10], esp
shl eax, 3
mov dword [ebx + 0x24], eax
cmp esi, 0x3e9
jne 0x464589
cdq
idiv dword [ebx + 0x98]
imul edx, dword [ebp + 8], 0x64
cmp dword [ebp - 0x20], 0x450
mov ecx, eax
mov esi, dword [ebx + 0x80]
mov eax, dword [ebx + 0x84]
mov dword [ebx + 0x24], ecx
jne 0x46452b
imul eax, eax, 0x3e8
push 3
add eax, ecx
add eax, eax
pop ecx
cmp esi, edx
jne 0x464521
add eax, 0xfa0
jmp 0x464526
imul edx, dword [ebp + 8]
xor ecx, ecx
test edx, edx
jle 0x464462
mov edx, dword [ebp + 8]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x38]
mov eax, dword [ebx]
imul eax, dword [ebp - 0x2c]
fld dword [edi + ecx*4]
add eax, ecx
inc ecx
fstp dword [esi + eax*4]
mov eax, dword [ebx]
imul eax, edx
cmp ecx, eax
jl 0x4644f9
mov ebx, dword [ebp - 0x10]
mov edi, 0x44f
mov eax, dword [ebp - 8]
jmp 0x464465
add eax, 0x7d0
cdq
idiv ecx
jmp 0x46454c
cmp esi, edx
jne 0x46453c
imul eax, eax, 0xbb8
add eax, 0x1f40
jmp 0x464545
add eax, 9
imul eax, eax, 0x3e8
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebx + 0x24], eax
mov ecx, dword [ebx + 0x98]
imul ecx, eax
mov eax, esi
shl eax, 3
cdq
idiv dword [ebp + 8]
mov dword [ebp - 0x38], ecx
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebx + 0x8c]
sub ecx, eax
shl ecx, 2
mov eax, ecx
push 5
cdq
pop ecx
idiv ecx
mov edx, 0x3e9
mov esi, edx
cmp dword [ebp - 0x38], eax
jle 0x464589
mov dword [ebx + 0x24], eax
imul eax, dword [ebp + 8], 0x3e8
lea ecx, [ebx + 8]
mov dword [ebp - 0x38], ecx
cdq
idiv dword [ebx + 0x80]
mov edx, 0x1f40
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x44]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x98]
mov dword [ebx + 0xc], eax
cmp ecx, 0x44d
jne 0x4645c3
mov dword [ebx + 0x1c], edx
jmp 0x4645d9
cmp ecx, 0x44e
mov eax, 0x3e80
mov ecx, 0x2ee0
cmove eax, ecx
mov dword [ebx + 0x1c], eax
mov ecx, 0x3e80
cmp esi, 0x3e9
mov eax, ecx
cmovne eax, edx
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], ecx
cmp dword [ebx + 0xb4], 0x3e8
jne 0x46464b
push 0x32
pop eax
cmp dword [ebp - 0x50], eax
jle 0x464617
mov eax, dword [ebp - 0x40]
add eax, eax
push 3
pop ecx
cdq
idiv ecx
mov edx, 0x1f40
mov ecx, eax
jmp 0x46461a
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x32c8
jge 0x464635
mov eax, dword [ebx + 0x1c]
mov esi, 0x2ee0
cmp eax, esi
mov dword [ebx + 0x14], esi
cmovg eax, esi
mov dword [ebx + 0x1c], eax
cmp ecx, 0x2580
jge 0x46464b
mov eax, dword [ebx + 0x1c]
cmp eax, edx
mov dword [ebx + 0x14], edx
cmovg eax, edx
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebx + 0x84]
xor eax, eax
test ecx, ecx
mov edx, 0x4fb
sete al
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x18]
dec eax
cmp eax, edx
cmovg eax, edx
mov dword [ebp - 0x40], eax
shl eax, 3
cmp dword [ebx + 0xb4], 0x3e9
mov dword [ebx + 0x3c], eax
jne 0x46468a
imul eax, eax, 9
push 0xa
pop esi
cdq
idiv esi
mov dword [ebx + 0x3c], eax
test ecx, ecx
jne 0x4646ba
mov esi, dword [ebx + 0x24]
mov eax, esi
imul eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x80]
shl ecx, 3
cdq
idiv ecx
xor ecx, ecx
shl eax, 3
inc ecx
mov dword [ebx + 0x3c], eax
lea eax, [esi - 0x7d0]
cmp eax, ecx
cmovl eax, ecx
mov dword [ebx + 0x24], eax
cmp dword [ebp - 0x54], 0
je 0x46472e
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebx + 0x94]
and dword [ebp - 0x44], 0
mov eax, dword [eax]
imul eax, ecx
test eax, eax
jle 0x46470e
mov edi, dword [ebp + 0x10]
lea esi, [ebx + 0xd0]
fld dword [esi]
push ecx
fstp dword [esp]
call fcn.00463406
mov word [edi + edx*2], ax
add esp, 4
mov eax, dword [ebp - 8]
inc edx
mov ecx, dword [ebx + 0x94]
add esi, 4
mov eax, dword [eax]
imul eax, ecx
cmp edx, eax
jl 0x4646e1
mov edi, 0x44f
xor eax, eax
lea esi, [ebx + 8]
inc eax
mov edx, esi
push eax
lea eax, [ebp - 0x44]
push eax
push 0
push ecx
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x4c]
call fcn.00458fe9
add esp, 0x14
jmp 0x464731
lea esi, [ebx + 8]
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [eax]
imul eax, dword [ebp + 8]
test eax, eax
jle 0x464775
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebx]
imul eax, dword [ebp - 0x2c]
push ecx
add eax, ecx
fld dword [esi + eax*4]
fstp dword [esp]
call fcn.00463406
mov word [edx + ecx*2], ax
add esp, 4
mov eax, dword [ebx]
inc ecx
imul eax, dword [ebp + 8]
cmp ecx, eax
jl 0x464749
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x40]
push 0
push eax
lea eax, [ebp - 0x90]
mov edx, esi
push eax
push dword [ebp + 8]
push dword [ebp + 0x10]
call fcn.00458fe9
add esp, 0x14
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x464312
mov ecx, dword [ebx + 0xb4]
cmp dword [ebp - 0x40], eax
jne 0x4647d8
and dword [ebx + 0xfd0], eax
mov eax, dword [ebx + 0x80]
cdq
idiv dword [ebp + 8]
push dword [ebx + 0x98]
mov edx, eax
push dword [ebp - 0x20]
call fcn.00463730
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
mov byte [ecx - 1], al
jmp 0x465031
cmp ecx, 0x3e8
jne 0x464815
cmp dword [ebx + 0x48], 0x1f40
jne 0x4647f2
mov dword [ebp - 0x20], 0x44d
jmp 0x464815
mov eax, 0x2ee0
cmp dword [ebx + 0x48], eax
jne 0x464805
mov dword [ebp - 0x20], 0x44e
jmp 0x464815
mov ecx, dword [ebp - 0x20]
cmp dword [ebx + 0x48], 0x3e80
cmove ecx, edi
mov dword [ebp - 0x20], ecx
mov eax, dword [ebx + 0x58]
mov dword [ebx + 0x44], eax
test eax, eax
je 0x46482f
xor eax, eax
inc eax
and dword [ebp - 0x48], 0
mov dword [ebp - 0xc], eax
mov dword [ebx + 0xc8], eax
mov ecx, dword [ebp - 0x20]
mov edx, 0x44d
push 0x15
pop eax
cmp ecx, edx
je 0x464854
jle 0x464857
cmp ecx, edi
jle 0x464850
cmp ecx, 0x450
jne 0x464857
push 0x13
jmp 0x464856
push 0x11
jmp 0x464856
push 0xd
pop eax
mov esi, dword [ebp - 0x1c]
push eax
push 0x271c
push esi
call fcn.00452ae7
add esp, 0xc
push dword [ebx + 0x98]
push 0x2718
push esi
call fcn.00452ae7
add esp, 0xc
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.00452ae7
mov eax, 0x3e8
add esp, 0xc
cmp dword [ebx + 0xb4], eax
je 0x464977
push 0
push 0xfa6
push esi
call fcn.00452ae7
add esp, 0xc
push 2
push 0x2712
push esi
call fcn.00452ae7
mov edi, dword [ebx + 0xb4]
add esp, 0xc
cmp edi, 0x3e9
jne 0x464923
bsr eax, dword [ebp - 0x74]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp + 0x10]
add eax, 6
sar eax, 3
cmp dword [ebp - 0xc], 0
lea esi, [eax + 3]
cmove esi, eax
cmp dword [ebx + 0x84], 0
je 0x46490f
mov eax, dword [ebx + 0x24]
imul eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x80]
shl ecx, 3
cdq
idiv ecx
sub esi, eax
add esi, dword [ebp - 0x3c]
mov dword [ebp - 0x10], esi
jmp 0x46491c
mov eax, dword [ebp - 0x3c]
cmp esi, eax
cmovg eax, esi
mov esi, eax
mov dword [ebp - 0x10], eax
mov edi, 0x3e9
jmp 0x46497e
cmp dword [ebx + 0x84], 0
je 0x464972
xor eax, eax
inc eax
push eax
push 0xfa6
push esi
call fcn.00452ae7
add esp, 0xc
push dword [ebx + 0x88]
push 0xfb4
push esi
call fcn.00452ae7
add esp, 0xc
push dword [ebx + 0x8c]
push 0xfa2
push esi
call fcn.00452ae7
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov edi, dword [ebx + 0xb4]
dec esi
jmp 0x46497b
mov esi, dword [ebp - 0x3c]
jmp 0x46497b
xor esi, esi
mov edi, eax
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 8]
mov eax, dword [ebx + 0x80]
imul eax, dword [ecx]
mov ecx, 0x190
mov dword [ebp - 0x44], ecx
cdq
idiv ecx
mov dword [ebp + 0x10], eax
shl eax, 2
call fcn.004ee0f0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], esp
mov ecx, dword [eax]
cmp edi, 0x3e8
je 0x464a09
mov edx, dword [ebx + 0xb8]
cmp edi, edx
je 0x464a09
test edx, edx
jle 0x464a09
xor edi, edi
cmp dword [ebp + 0x10], edi
jle 0x464a09
mov esi, esp
mov eax, dword [ebx + 0x80]
mov ecx, 0x190
cdq
idiv ecx
mov ecx, dword [ebx + 0x94]
sub ecx, eax
mov eax, dword [ebp - 8]
sub ecx, dword [ebx + 0x64]
imul ecx, dword [eax]
add ecx, edi
fld dword [ebx + ecx*4 + 0xd0]
fstp dword [esi + edi*4]
mov ecx, dword [eax]
inc edi
mov eax, dword [ebx + 0x80]
imul eax, ecx
cdq
idiv dword [ebp - 0x44]
cmp edi, eax
jl 0x4649c7
mov esi, dword [ebp - 0x10]
mov edi, dword [ebx + 0x94]
xor edx, edx
mov eax, edi
sub eax, dword [ebp - 0x2c]
sub eax, dword [ebp + 8]
imul eax, ecx
test eax, eax
jle 0x464a58
lea esi, [ebx + 0xd0]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
imul eax, dword [ebp + 8]
add eax, edx
inc edx
fld dword [ebx + eax*4 + 0xd0]
fstp dword [esi]
mov edi, dword [ebx + 0x94]
add esi, 4
mov ecx, dword [ecx]
mov eax, edi
sub eax, dword [ebp - 0x2c]
sub eax, dword [ebp + 8]
imul eax, ecx
cmp edx, eax
jl 0x464a26
mov esi, dword [ebp - 0x10]
mov eax, ecx
imul eax, edi
cmp edx, eax
jge 0x464a9e
mov esi, dword [ebp + 8]
lea edi, [edx + 0x34]
lea edi, [ebx + edi*4]
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebx + 0x94]
mov ecx, dword [ebp - 8]
add eax, esi
mov esi, dword [ebp - 0x14]
imul eax, dword [ecx]
add eax, edx
inc edx
fld dword [esi + eax*4]
mov esi, dword [ebp + 8]
fstp dword [edi]
mov eax, dword [ebx + 0x94]
add edi, 4
mov ecx, dword [ecx]
imul eax, ecx
cmp edx, eax
jl 0x464a6a
mov esi, dword [ebp - 0x10]
mov edx, dword [ebx + 0xb4]
mov eax, 0x4000
cmp edx, 0x3e9
jne 0x464abc
xor edi, edi
inc edi
cmp dword [ebx + 0x98], edi
jne 0x464ac6
mov edi, dword [ebp - 8]
mov dword [ebx + 0x54], eax
mov ecx, dword [edi]
jmp 0x464ac9
mov edi, dword [ebp - 8]
cmp ecx, 2
jne 0x464b53
cmp word [ebx + 0x9c], ax
jl 0x464ae0
cmp dword [ebx + 0x54], eax
jge 0x464b53
lea eax, [ebp + 0x10]
push eax
push 0x271f
push dword [ebp - 0x1c]
call fcn.00452ae7
mov eax, dword [ebp + 0x10]
add esp, 0xc
cvtsi2ss xmm0, dword [ebx + 0x54]
mov edx, dword [ebp - 0x14]
push dword [ebx + 0x80]
mulss xmm0, dword [0x55d448]
push dword [eax + 0x3c]
push dword [edi]
push dword [ebp + 8]
push dword [eax + 4]
movsx eax, word [ebx + 0x9c]
push ecx
push ecx
movss dword [esp + 4], xmm0
mov ecx, edx
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x55d448]
movss dword [esp], xmm0
call fcn.00463982
mov ax, word [ebx + 0x54]
add esp, 0x1c
mov edx, dword [ebx + 0xb4]
mov word [ebx + 0x9c], ax
cmp edx, 0x3ea
je 0x464c6d
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x7c]
bsr eax, eax
push 0x14
mov dword [ebp + 0x10], eax
xor eax, eax
cmp edx, 0x3e9
pop ecx
cmove eax, ecx
lea ecx, [edi + 0x10]
sub eax, dword [ebp + 0x10]
add ecx, eax
mov eax, dword [ebp - 0x30]
lea eax, [eax*8 - 8]
cmp ecx, eax
jg 0x464c6d
cmp edx, 0x3e9
jne 0x464bcd
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x464bbd
mov eax, dword [ebp - 0x74]
bsr eax, eax
sub edi, eax
mov dword [ebp + 0x10], eax
mov eax, esi
add edi, 0x24
shl eax, 3
cmp edi, eax
jg 0x464c5f
mov edx, ecx
lea ecx, [ebp - 0x90]
push 0xc
call fcn.0045a158
pop ecx
cmp dword [ebp - 0xc], 0
je 0x464c5f
mov edx, dword [ebp - 0x48]
lea ecx, [ebp - 0x90]
xor eax, eax
inc eax
push eax
call fcn.0045a158
mov edi, dword [ebp - 0x30]
pop ecx
mov ecx, dword [ebx + 0xb4]
cmp ecx, 0x3e9
jne 0x464c02
sub edi, esi
sub edi, 2
jmp 0x464c18
bsr eax, dword [ebp - 0x74]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp + 0x10]
add eax, 6
sar eax, 3
sub edi, eax
dec edi
mov eax, dword [ebx + 0x8c]
cdq
idiv dword [ebp - 0x60]
push 2
cmp edi, eax
cmovge edi, eax
pop eax
cmp edi, eax
cmovl edi, eax
mov eax, 0x101
cmp edi, eax
cmovg edi, eax
mov dword [ebp - 0x34], edi
cmp ecx, 0x3e9
jne 0x464c58
push 0x100
lea edx, [edi - 2]
lea ecx, [ebp - 0x90]
call fcn.0045a1cc
pop ecx
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x464c74
and dword [ebx + 0xc8], 0
xor edx, edx
mov dword [ebp - 0x34], edx
jmp 0x464c77
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp 0x464c5b
mov edx, dword [ebp - 0x34]
mov eax, dword [ebx + 0xb4]
xor ecx, ecx
cmp eax, 0x3ea
push 0x11
pop edi
cmove edi, ecx
cmp eax, 0x3e8
jne 0x464cb6
bsr eax, dword [ebp - 0x74]
mov esi, dword [ebp - 0x7c]
lea ecx, [ebp - 0x90]
sub esi, eax
mov dword [ebp + 0x10], eax
add esi, 6
sar esi, 3
mov dword [ebp - 0x28], esi
call fcn.0045a2b8
mov dword [ebp - 0x10], esi
jmp 0x464cd3
mov ecx, dword [ebp - 0x30]
sub ecx, edx
cmp ecx, esi
lea eax, [ecx - 1]
cmovle esi, eax
lea ecx, [ebp - 0x90]
mov edx, esi
mov dword [ebp - 0x10], esi
call fcn.0045a28e
cmp dword [ebp - 0xc], 0
je 0x464d56
cmp dword [ebp - 0x48], 0
je 0x464d56
push 0
push 0x271a
push dword [ebp - 0x1c]
call fcn.00452ae7
add esp, 0xc
push 0
push 0xfa6
push dword [ebp - 0x1c]
call fcn.00452ae7
mov eax, dword [ebp - 0x24]
add esp, 0xc
add eax, esi
mov ecx, 0xc8
push 0
push dword [ebp - 0x34]
push eax
mov eax, dword [ebx + 0x80]
cdq
idiv ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.0045158a
add esp, 0x10
test eax, eax
js 0x464312
lea eax, [ebp - 0x58]
push eax
push 0xfbf
push dword [ebp - 0x1c]
call fcn.00452ae7
add esp, 0xc
push 0xfbc
push dword [ebp - 0x1c]
call fcn.00452ae7
pop ecx
pop ecx
push edi
mov edi, dword [ebp - 0x1c]
push 0x271a
push edi
call fcn.00452ae7
mov ecx, dword [ebx + 0xb4]
add esp, 0xc
cmp ecx, 0x3e8
je 0x464e04
mov eax, dword [ebx + 0xb8]
cmp ecx, eax
je 0x464dc6
test eax, eax
jle 0x464dc6
push 0xfbc
push edi
call fcn.00452ae7
push 0
push 2
pop eax
push eax
lea eax, [ebp + 0x10]
mov ecx, 0x190
push eax
mov eax, dword [ebx + 0x80]
cdq
idiv ecx
mov edx, dword [ebp - 0x18]
mov ecx, edi
push eax
call fcn.0045158a
push 0
push 0x2712
push edi
call fcn.00452ae7
add esp, 0x24
mov edi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
bsr eax, edi
sub ecx, eax
mov dword [ebp + 0x10], eax
mov eax, esi
dec ecx
shl eax, 3
cmp ecx, eax
jg 0x464e07
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x90]
mov ecx, dword [ebp - 0x1c]
push eax
push esi
push 0
push dword [ebp + 8]
call fcn.0045158a
add esp, 0x10
mov dword [ebp - 0x28], eax
test eax, eax
js 0x464312
mov edi, dword [ebp - 0x74]
cmp dword [ebp - 0xc], 0
je 0x464edc
cmp dword [ebp - 0x48], 0
jne 0x464edc
mov ecx, dword [ebx + 0x80]
mov esi, 0xc8
mov eax, ecx
cdq
idiv esi
push 0xfbc
mov edi, eax
mov eax, ecx
cdq
mov ecx, 0x190
idiv ecx
push dword [ebp - 0x1c]
mov esi, eax
call fcn.00452ae7
push 0
push 0x271a
push dword [ebp - 0x1c]
call fcn.00452ae7
add esp, 0x14
push 0
push 0x2712
push dword [ebp - 0x1c]
call fcn.00452ae7
mov ecx, dword [ebp - 8]
add esp, 0xc
push 0
push 2
pop eax
push eax
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 8]
sub eax, esi
sub eax, edi
imul eax, dword [ecx]
mov ecx, dword [ebp - 0x14]
push esi
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1c]
call fcn.0045158a
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x24]
add eax, esi
mov ecx, dword [ebp - 8]
push 0
push dword [ebp - 0x34]
push eax
mov eax, dword [ebp + 8]
sub eax, edi
imul eax, dword [ecx]
mov ecx, dword [ebp - 0x14]
push edi
mov edi, dword [ebp - 0x1c]
lea edx, [ecx + eax*4]
mov ecx, edi
call fcn.0045158a
add esp, 0x20
test eax, eax
js 0x464312
lea eax, [ebp - 0x58]
push eax
push 0xfbf
push edi
call fcn.00452ae7
mov edi, dword [ebp - 0x74]
add esp, 0xc
jmp 0x464edf
mov esi, dword [ebp - 0x24]
mov eax, dword [ebx + 0x80]
cdq
idiv dword [ebp + 8]
push dword [ebx + 0x98]
mov ecx, dword [ebx + 0xb4]
mov edx, eax
push dword [ebp - 0x20]
call fcn.00463730
mov byte [esi - 1], al
mov eax, edi
xor eax, dword [ebp - 0x58]
cmp dword [ebp - 0x5c], 0
pop ecx
mov dword [ebx + 0xfd0], eax
mov eax, 0x3ea
pop ecx
jne 0x464f20
mov eax, dword [ebx + 0xb4]
mov dword [ebx + 0xb8], eax
xor edx, edx
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebp - 0x7c]
mov dword [ebx + 0xbc], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0xc0], eax
bsr eax, edi
mov edi, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp + 8], eax
dec ecx
mov dword [ebx + 0xcc], edx
lea eax, [edi*8 - 8]
cmp ecx, eax
jle 0x464f7b
push 2
pop eax
cmp edi, eax
jge 0x464f6b
push 0xfffffffffffffffe
jmp 0x464314
mov eax, dword [ebp - 0x24]
mov byte [eax], dl
xor eax, eax
inc eax
mov dword [ebx + 0xfd0], edx
jmp 0x464f9f
cmp dword [ebx + 0xb4], 0x3e8
mov eax, dword [ebp - 0x28]
jne 0x464f9f
cmp dword [ebp - 0xc], edx
jne 0x464f9f
push 2
pop ecx
jmp 0x464f9b
cmp byte [eax + esi - 1], dl
jne 0x464f9f
dec eax
cmp eax, ecx
jg 0x464f94
mov ecx, dword [ebp - 0x34]
inc ecx
add eax, ecx
cmp dword [ebx + 0x84], edx
jne 0x465034
push 3
pop ecx
cmp eax, ecx
jl 0x465034
push edi
mov edx, eax
lea ecx, [esi - 1]
call fcn.00463642
pop ecx
test eax, eax
jne 0x464312
mov eax, edi
jmp 0x465034
mov eax, dword [ebx + 0xc4]
mov esi, 0x44d
mov ecx, dword [ebx + 0xb4]
test eax, eax
cmove eax, esi
test ecx, ecx
lea edx, [esi - 0x65]
cmove ecx, edx
mov dword [ebp + 8], edx
add edx, 2
cmp edi, 0x64
cmovg ecx, edx
cmp edi, 0x32
cmovl ecx, dword [ebp + 8]
cmp ecx, 0x3e8
jne 0x465041
lea edx, [esi + 2]
cmp eax, edx
jg 0x46501c
mov esi, 0x450
mov edx, eax
cmp eax, esi
cmovle edx, esi
push dword [ebx + 0x98]
push edx
mov edx, edi
call fcn.00463730
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
mov byte [ecx], al
xor eax, eax
inc eax
lea esp, [ebp - 0x24c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, edx
jne 0x465010
cmp eax, 0x44e
jne 0x465010
mov edx, esi
jmp 0x46501c