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

Disassembly:
mov eax, 0xaec69c
call fcn.00a6fc7c
sub esp, 0x88
push ebx
push esi
xor ebx, ebx
cmp dword [ebp + 0x28], ebx
mov esi, ecx
push edi
mov dword [ebp - 0x10], esi
je 0x9643a2
lea ecx, [esi + 0x1b90]
call fcn.00429944
test eax, eax
jne 0x96582c
mov eax, dword [esi + 0x3c0]
and eax, 0xfffffffe
cmp eax, 0x12
je 0x96582c
call fcn.00994c7a
mov ecx, dword [esi + 0x1c14]
cmp ecx, ebx
je 0x9643bb
mov edx, eax
sub edx, ecx
js 0x96582c
mov edx, eax
sub edx, ecx
cmp edx, 0x1f4
jle 0x9643cd
mov dword [esi + 0x1c14], ebx
mov edx, dword [esi + 0x1c18]
cmp edx, ebx
lea ecx, [esi + 0x1c18]
je 0x9643e5
sub eax, edx
js 0x96582c
cmp dword [esi + 0x290c], ebx
mov dword [ecx], ebx
je 0x9643fb
cmp dword [esi + 0x2918], ebx
jne 0x96582c
mov edi, dword [ebp + 0x18]
cmp edi, ebx
je 0x96441d
mov ecx, edi
call fcn.0069f618
test eax, eax
jne 0x96582c
cmp dword [edi + 0x318], ebx
jne 0x96582c
mov ecx, dword [0xbd9028]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x68], ebx
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 4], ebx
call fcn.00a497a1
mov eax, dword [0xbdd45c]
mov edi, dword [esi + 0xf2c]
lea ecx, [esi + 4]
mov dword [ebp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0x10]
push dword [eax + 4]
mov ecx, dword [ebp + 0x28]
push dword [eax]
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.00431544
test eax, eax
jne 0x965820
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x94]
push eax
mov ecx, edi
call fcn.00426f51
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x5c], eax
call fcn.00429bfe
add edi, 0x3214
lea esi, [ebp - 0x30]
mov dword [ebp + 0x28], 4
mov ecx, edi
call fcn.00416e71
mov dword [esi], eax
add esi, 4
dec dword [ebp + 0x28]
jne 0x964497
mov edi, dword [ebp + 0x18]
cmp edi, ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x74], ebx
je 0x965375
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
call dword [eax + 0x10]
mov esi, dword [eax]
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp esi, dword [eax]
jle 0x9644fb
mov dword [ebp - 0x60], 1
mov ecx, dword [edi + 0x178]
push dword [ebp + 0x1c]
mov dword [ebp - 0x4c], ecx
call fcn.00534b2d
cmp eax, ebx
mov dword [ebp - 0x38], eax
je 0x9645e4
cmp dword [eax + 0x1c], ebx
je 0x9645e4
mov eax, dword [eax + 0x20]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
mov dword [ebp + 0xc], ebx
call fcn.00426f51
mov eax, dword [eax + 4]
lea edx, [ebp - 0x58]
push edx
push dword [ebp - 0x30]
lea edx, [esi + 0x2110]
push edx
lea ecx, [esi + 0x2098]
push ecx
push eax
add edi, 0x190
push edi
lea ecx, [esi + 0x31f4]
mov byte [ebp - 4], 1
call fcn.00799403
cmp dword [ebp - 0x1c], ebx
mov dword [ebp + 8], eax
mov byte [ebp - 4], bl
je 0x96457a
push ebx
lea ecx, [ebp - 0x20]
call fcn.00429e8b
cmp dword [ebp + 8], ebx
jne 0x964586
mov dword [ebp + 0xc], 1
mov edi, dword [ebp - 0x38]
cmp dword [edi + 0x20], ebx
je 0x9645d0
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.00426f51
push dword [edi + 0x20]
mov eax, dword [eax + 4]
push eax
mov byte [ebp - 4], 2
call fcn.00772ce1
pop ecx
pop ecx
mov ecx, eax
push 0x64
pop eax
sub eax, ecx
imul eax, dword [ebp + 8]
push 0x64
cdq
pop ecx
idiv ecx
cmp dword [ebp - 0x1c], ebx
mov byte [ebp - 4], bl
mov dword [ebp + 8], eax
je 0x9645d0
push ebx
lea ecx, [ebp - 0x20]
call fcn.00429e8b
cmp dword [ebp + 0xc], ebx
jne 0x96463b
cmp dword [ebp + 8], 1
jg 0x96463b
mov dword [ebp + 8], 1
jmp 0x96463b
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.00426f51
mov eax, dword [eax + 4]
lea edx, [ebp - 0x58]
push edx
push dword [ebp - 0x30]
lea edx, [esi + 0x2110]
push dword [ebp - 0x38]
lea ecx, [esi + 0x2098]
push edx
push ecx
push eax
add edi, 0x190
push edi
lea ecx, [esi + 0x31f4]
mov byte [ebp - 4], 3
call fcn.00798e34
cmp dword [ebp - 0x1c], ebx
mov dword [ebp + 8], eax
mov byte [ebp - 4], bl
je 0x964638
push ebx
lea ecx, [ebp - 0x20]
call fcn.00429e8b
mov edi, dword [ebp - 0x38]
xor eax, eax
cmp dword [ebp + 8], ebx
setle al
cmp edi, ebx
mov dword [ebp - 0x3c], eax
je 0x964695
cmp dword [edi + 0x6c], ebx
je 0x964679
cmp eax, ebx
jne 0x964679
mov edi, dword [ebp - 0x5c]
push dword [edi + 0x65]
lea eax, [edi + 0x61]
push eax
call fcn.0047376f
pop ecx
pop ecx
movsx eax, ax
push 1
dec eax
pop ecx
cmp eax, ecx
jle 0x964674
mov dword [ebp + 8], eax
jmp 0x96467c
mov dword [ebp + 8], ecx
jmp 0x96467c
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x94], ebx
je 0x964698
cmp dword [ebp - 0x3c], ebx
jne 0x964698
mov dword [ebp + 8], 1
jmp 0x964698
mov edi, dword [ebp - 0x5c]
push dword [edi + 0x3d]
lea esi, [edi + 0x39]
push esi
call fcn.0047376f
cmp ax, 0x19c
pop ecx
pop ecx
je 0x9646c1
push dword [edi + 0x3d]
push esi
call fcn.0047376f
cmp ax, 0x1a6
pop ecx
pop ecx
jne 0x96476e
push dword [edi + 0x3d]
lea eax, [edi + 0x39]
push eax
call fcn.0047376f
pop ecx
pop ecx
xor ecx, ecx
cmp ax, 0x19c
setne cl
lea eax, [ebp - 0x20]
push eax
dec ecx
and ecx, 0xfffe7960
add ecx, fcn.00406462
mov esi, ecx
mov ecx, dword [ebp - 0x18]
call fcn.00426f51
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x78]
push ecx
mov ecx, dword [0xbd8fec]
push esi
push eax
mov byte [ebp - 4], 4
call fcn.0076eacd
cmp dword [ebp - 0x1c], ebx
mov esi, eax
mov byte [ebp - 4], bl
je 0x96471e
push ebx
lea ecx, [ebp - 0x20]
call fcn.00429e8b
cmp esi, ebx
je 0x96476e
mov ecx, dword [ebp - 0x78]
push esi
call fcn.0076e2fa
push dword [eax + 0xfc]
add eax, 0xf4
push eax
call fcn.00416de8
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x2c]
push 0x64
xor edx, edx
pop esi
div esi
cmp edx, ecx
jae 0x96476e
call fcn.004376f2
mov eax, dword [eax + 0x13c]
push 1
shr eax, 1
pop esi
and eax, esi
mov dword [ebp + 0xc], eax
jne 0x964771
or dword [ebp + 8], 0xffffffff
mov dword [ebp - 0x3c], esi
jmp 0x964771
push 1
pop esi
mov eax, dword [ebp - 0x28]
push 0x64
xor edx, edx
pop ecx
div ecx
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x300]
jae 0x96478c
mov dword [ebp + 8], ebx
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x10]
call fcn.0096583d
test eax, eax
je 0x96479e
mov dword [ebp + 8], ebx
mov dword [ebp - 0x3c], esi
call fcn.004376f2
test eax, eax
je 0x96481e
call fcn.004376f2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x1c]
cmp eax, 0x13
jne 0x96481e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x28b0]
cmp eax, ebx
jne 0x9647fc
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [eax + 0x7b8]
add eax, 0x7b0
push eax
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
jne 0x964818
mov eax, dword [ebp - 0x4c]
push dword [eax + 0x14]
add eax, 0xc
push eax
call fcn.006a0b2d
pop ecx
pop ecx
cmp eax, 0x8de96a
jmp 0x964816
cmp eax, esi
jne 0x96481e
mov eax, dword [ebp - 0x4c]
push dword [eax + 0x14]
add eax, 0xc
push eax
call fcn.006a0b2d
pop ecx
pop ecx
cmp eax, 0x8de969
jne 0x96481e
mov dword [ebp + 8], ebx
mov dword [ebp - 0x3c], esi
cmp dword [ebp + 8], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0xc], ebx
jle 0x96519b
push dword [edi + 0x3d]
lea eax, [edi + 0x39]
push eax
mov dword [ebp - 0x14], 0x10e
call fcn.0047376f
cmp ax, 0x70
pop ecx
pop ecx
je 0x964863
push dword [edi + 0x3d]
lea eax, [edi + 0x39]
push eax
call fcn.0047376f
cmp ax, 0x7a
pop ecx
pop ecx
jne 0x964974
push 1
pop esi
push 0xfffffffffffffff6
push esi
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.004296b0
cmp dword [ebp - 0x1c], ebx
mov esi, dword [eax + 4]
je 0x964882
push ebx
lea ecx, [ebp - 0x20]
call fcn.00429c97
cmp esi, ebx
je 0x964974
push dword [edi + 0x3d]
lea eax, [edi + 0x39]
push eax
call fcn.0047376f
pop ecx
pop ecx
xor ecx, ecx
cmp ax, 0x70
setne cl
lea eax, [ebp - 0x20]
push eax
dec ecx
and ecx, 0xfffe795f
add ecx, 0x129da6
mov esi, ecx
mov ecx, dword [ebp - 0x18]
call fcn.00426f51
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x70]
push ecx
mov ecx, dword [0xbd8fec]
push esi
push eax
mov byte [ebp - 4], 5
call fcn.0076eacd
cmp dword [ebp - 0x1c], ebx
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], bl
je 0x9648e8
push ebx
lea ecx, [ebp - 0x20]
call fcn.00429e8b
cmp dword [ebp - 0x64], ebx
je 0x964974
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x70]
call fcn.0076e2fa
push dword [eax + 0xfc]
add eax, 0xf4
push eax
call fcn.00416de8
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov esi, 0x3e8
div esi
cmp edx, ecx
jae 0x964974
call fcn.004376f2
mov eax, dword [eax + 0x13c]
shr eax, 1
and eax, 1
mov dword [ebp - 0x24], eax
jne 0x964974
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x394]
cdq
mov ecx, 0x2710
idiv ecx
cmp eax, 0xbe
je 0x964959
cmp eax, 0xc1
je 0x964959
xor eax, eax
jmp 0x96495c
push 1
pop eax
xor ecx, ecx
cmp eax, ebx
sete cl
xor eax, eax
and ecx, 1
cmp dword [ebp - 0x38], ebx
mov dword [ebp - 0x54], ecx
sete al
mov dword [ebp - 0x6c], eax
cmp dword [ebp + 0x24], ebx
jle 0x964b5f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x178]
push dword [eax + 0x84]
add eax, 0x7c
push eax
call fcn.00416de8
pop ecx
pop ecx
cdq
push 0xa
pop ecx
idiv ecx
push 0x64
pop esi
mov ecx, eax
mov eax, dword [ebp + 8]
imul eax, dword [ebp + 0x24]
cdq
idiv esi
cmp eax, ecx
mov dword [ebp + 0x28], eax
jl 0x9649b6
mov dword [ebp + 0x28], ecx
mov esi, dword [ebp + 0x18]
mov ecx, esi
call fcn.0069784e
test eax, eax
je 0x9649cf
mov eax, dword [ebp + 0x28]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x28]
cmp eax, ebx
mov dword [ebp - 0x44], eax
je 0x964a72
mov eax, dword [esi + 0x178]
push dword [eax + 0x1b8]
add eax, 0x1b0
push eax
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
jle 0x964a4f
mov eax, dword [esi + 0x178]
push dword [eax + 0x1b8]
add eax, 0x1b0
push eax
call fcn.00416de8
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x178]
push dword [eax + 0x1b8]
add eax, 0x1b0
push eax
call fcn.00416de8
add esp, 0x10
cmp eax, dword [ebp + 0x28]
jg 0x964a4f
mov eax, dword [esi + 0x178]
push dword [eax + 0x1b8]
add eax, 0x1b0
push eax
call fcn.00416de8
pop ecx
pop ecx
mov dword [ebp + 0x28], eax
mov eax, dword [esi + 0x178]
push dword [eax + 0x190]
add eax, 0x188
push eax
call fcn.006a0adf
cmp eax, ebx
pop ecx
pop ecx
je 0x964a72
mov dword [ebp - 0x44], ebx
mov dword [ebp + 0x28], ebx
cmp dword [ebp + 0x28], ebx
jle 0x964b52
mov eax, dword [ebp - 0x18]
push dword [eax + 0x21d8]
add eax, 0x2110
add eax, 0xc0
push eax
call fcn.00416de8
mov esi, eax
mov eax, dword [ebp - 0x18]
push dword [eax + 0x21e4]
add eax, 0x2110
add eax, 0xcc
push eax
call fcn.00416de8
add eax, esi
add esp, 0x10
cmp eax, ebx
jg 0x964aba
xor eax, eax
mov ecx, 0x3e7
cmp eax, ecx
mov dword [ebp - 0x40], eax
jl 0x964ac9
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x4c]
push dword [eax + 0x78]
add eax, 0x70
push eax
call fcn.00416de8
push dword [edi + 0x35]
add edi, 0x33
push edi
mov esi, eax
call fcn.004f7707
movzx eax, al
sub esi, eax
add esp, 0x10
cmp esi, ebx
mov dword [ebp - 0x14], esi
jg 0x964af8
mov dword [ebp - 0x14], ebx
fild dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
push dword [eax + 0xfc]
add eax, 0xf4
fmul qword [0xb00110]
push eax
fild dword [ebp - 0x14]
fmul qword [0xb04f48]
fadd qword [0xb064d0]
fdivp st(1)
fstp qword [ebp - 0x20]
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
jle 0x964b33
mov ecx, eax
jmp 0x964b35
xor ecx, ecx
mov eax, 0x3e7
cmp ecx, eax
mov dword [ebp - 0x40], ecx
jl 0x964b44
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
fcomp qword [ebp - 0x20]
fnstsw ax
sahf
jbe 0x964b52
mov dword [ebp + 0x28], ebx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x14], 0xc8
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x6c], ebx
jne 0x964b6d
cmp dword [ebp - 0x34], ebx
jle 0x964c46
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x88]
push 1
lea eax, [ebp - 0x8c]
push eax
call fcn.004517d4
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x8c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x18]
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00692e65
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.0069716a
mov ecx, dword [esi + 0x178]
push 0x10cccf
mov dword [ebp - 0x40], eax
call fcn.006aee4f
test eax, eax
jne 0x964be3
mov eax, esi
mov ecx, dword [eax + 0x178]
push 0x12536f
call fcn.006aee4f
test eax, eax
jne 0x964be3
mov dword [ebp + 0x28], ebx
mov esi, dword [ebp - 0x44]
cmp esi, ebx
jne 0x964bed
or esi, 0xffffffff
mov eax, dword [ebp - 0x54]
push ebx
push ebx
push ebx
neg eax
push ebx
sbb eax, eax
and eax, 2
push eax
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0xbdd7e4
call fcn.00426d6e
push dword [ebp - 0x1c]
mov byte [ebp - 4], bl
push dword [ebp - 0x20]
push ebx
push ebx
push esi
mov esi, dword [ebp - 0x10]
lea ecx, [esi + 0x88]
call fcn.00451dca
push eax
push dword [ebp - 0x40]
call fcn.00994c7a
add eax, 0x64
push eax
push ebx
mov ecx, esi
call fcn.007ad838
mov ecx, dword [ebp + 0x18]
push eax
call fcn.0069960d
cmp dword [ebp - 0x54], ebx
jne 0x965190
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x40]
sub eax, 0x70
je 0x964c86
sub eax, 0xa
je 0x964c7f
sub eax, 0xa
je 0x964c78
sub eax, 0x7bc
je 0x964c71
xor esi, esi
jmp 0x964c8b
mov esi, 0x14247eb
jmp 0x964c8b
mov esi, 0x14282a
jmp 0x964c8b
mov esi, 0x12a18a
jmp 0x964c8b
mov esi, 0x111aea
mov ecx, 0xbdf028
call fcn.00416e71
push 0x64
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 0x24], edx
call fcn.004376f2
mov eax, dword [eax + 0x13c]
shr eax, 1
and eax, 1
mov dword [ebp - 0x44], eax
je 0x964d3b
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x38]
cmp eax, ebx
je 0x964e42
cmp dword [eax + 0x98], ebx
je 0x964e42
call fcn.00994c7a
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 0xf28]
push 1
pop edi
mov dword [esi + 0x2efc], eax
mov dword [esi + 0x2f00], edi
add esi, 0xf28
lea eax, [ecx - 0xc]
neg ecx
sbb ecx, ecx
push 0xc
and ecx, eax
call fcn.0053e95d
mov esi, dword [esi]
mov eax, esi
add esi, 0xfffffff4
neg eax
sbb eax, eax
and eax, esi
mov eax, dword [eax + 0x110]
neg eax
sbb eax, eax
and eax, 0x3e8
add eax, 0x384
cmp dword [ebp + 0x20], 0x7fffffff
jne 0x964e33
mov dword [ebp + 0xc], ebx
jmp 0x964e3d
mov eax, dword [ebp - 0x18]
push dword [eax + 0x26d0]
add eax, 0x26c8
push eax
call fcn.00416de8
cmp eax, 0x64
pop ecx
pop ecx
jl 0x964d59
push 0x64
pop eax
cmp eax, ebx
jg 0x964d5f
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x24], eax
mov edi, 0xe66864
setl cl
cmp ecx, ebx
mov dword [ebp - 0x50], ecx
jne 0x964e00
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x2cf4]
mov eax, dword [ecx]
call dword [eax + 4]
test al, al
je 0x964df7
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x40]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0xbd8fec]
mov dword [ebp - 0x44], ebx
mov esi, eax
dec esi
neg esi
sbb esi, esi
lea eax, [ebp - 0x44]
and esi, 0xff67908d
push eax
add esi, edi
push esi
push dword [ebp - 0x5c]
call fcn.0076eacd
mov ecx, dword [ebp - 0x44]
cmp ecx, ebx
je 0x964df7
push eax
call fcn.0076e2fa
push dword [eax + 0xfc]
add eax, 0xf4
push eax
call fcn.00416de8
cmp eax, 0x64
pop ecx
pop ecx
jl 0x964de6
push 0x64
pop eax
cmp eax, ebx
jg 0x964dec
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x24], eax
setl cl
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x50], ebx
je 0x964cbb
mov ecx, dword [0xbd8fec]
push ebx
push 0x3e8
push esi
call fcn.00769b51
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0093cb27
cmp esi, 0x4df8f1
je 0x964e27
cmp esi, edi
jne 0x964e78
push 0x2b
push esi
call fcn.00996b0c
pop ecx
pop ecx
jmp 0x964e78
cmp dword [ebp - 0x60], edi
jne 0x964e3a
neg eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], ebx
jmp 0x964e78
mov edx, 0x7fffffff
cmp dword [ebp + 0x20], edx
jne 0x964e54
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0xc], ebx
jmp 0x964e68
cmp dword [ebp + 0x20], ebx
mov ecx, dword [ebp - 0x14]
jge 0x964e65
mov eax, ecx
neg eax
mov dword [ebp + 0xc], eax
jmp 0x964e68
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 0x20]
sub eax, edx
neg ecx
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x10]
mov esi, 0x404139
cmp dword [eax + 0x28c0], esi
jne 0x964efe
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x28]
push eax
call fcn.00426f51
mov eax, dword [eax + 4]
mov ecx, dword [0xbd8fec]
push 0xbe25a4
push esi
push eax
mov byte [ebp - 4], 7
call fcn.0076eacd
cmp dword [ebp - 0x24], ebx
mov esi, eax
mov byte [ebp - 4], bl
je 0x964ec0
push ebx
lea ecx, [ebp - 0x28]
call fcn.00429e8b
cmp esi, ebx
je 0x964efe
mov ecx, dword [0xbe25a4]
cmp ecx, ebx
je 0x964efe
push esi
call fcn.0076e2fa
push dword [eax + 0x144]
add eax, 0x13c
push eax
call fcn.00416de8
imul eax, dword [ebp + 8]
pop ecx
pop ecx
push 0x64
pop ecx
cdq
idiv ecx
push 1
pop ecx
cmp eax, ecx
mov dword [ebp + 8], eax
jg 0x964efe
mov dword [ebp + 8], ecx
cmp dword [ebp - 0x38], ebx
je 0x96519b
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x1c], ebx
je 0x96519b
mov eax, dword [ebp - 0x18]
push dword [eax + 0x2724]
lea edi, [eax + 0x2110]
lea esi, [edi + 0x60c]
push esi
mov dword [ebp - 0x24], edi
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
je 0x96519b
test byte [0xbe2564], 1
jne 0x964f60
mov ecx, dword [0xbd8fec]
or byte [0xbe2564], 1
push 0x205d2a
call fcn.00769b51
mov dword [0xbe2560], eax
push dword [edi + 0x614]
push esi
call fcn.00416de8
pop ecx
pop ecx
mov ecx, dword [0xbe2560]
push eax
call fcn.0076e2fa
push dword [eax + 0xfc]
add eax, 0xf4
push eax
call fcn.00416de8
pop ecx
pop ecx
mov ecx, 0xbdf028
mov edi, eax
call fcn.00416e71
push 0x64
xor edx, edx
pop ecx
div ecx
cmp edx, edi
jae 0x96519b
mov eax, dword [ebp - 0x24]
push dword [eax + 0x614]
push esi
call fcn.00416de8
pop ecx
pop ecx
mov ecx, dword [0xbe2560]
push eax
call fcn.0076e2fa
push dword [eax + 0x144]
add eax, 0x13c
push eax
call fcn.00416de8
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x178]
push dword [eax + 0x84]
add eax, 0x7c
push eax
call fcn.00416de8
add esp, 0x10
cdq
push 0x14
pop ecx
idiv ecx
push 0x64
pop edi
mov ecx, eax
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp + 8]
cdq
idiv edi
cmp eax, ecx
mov dword [ebp - 0x34], eax
jl 0x965013
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0x178]
push 0x205d2a
call fcn.006aee4f
test eax, eax
jne 0x965052
mov ecx, dword [esi + 0x178]
push 0x21e3ca
call fcn.006aee4f
test eax, eax
jne 0x965052
mov ecx, dword [esi + 0x178]
push 0x236a6a
call fcn.006aee4f
test eax, eax
jne 0x965052
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], ebx
jle 0x965125
mov eax, dword [ebp - 0x18]
push dword [eax + 0x20dc]
lea esi, [eax + 0x2098]
lea eax, [esi + 0x3c]
push eax
call fcn.00416de8
push dword [esi + 0x50]
mov edi, eax
lea eax, [esi + 0x48]
push eax
call fcn.00416de8
cdq
push 0xa
pop ecx
idiv ecx
push 0xa
mov ecx, eax
mov eax, edi
cdq
pop edi
idiv edi
add ecx, eax
lea eax, [ecx + ecx*4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x4c]
push dword [eax + 0x78]
add eax, 0x70
push eax
call fcn.00416de8
push dword [esi + 0x14]
add esi, 0xc
push esi
mov edi, eax
call fcn.00416de8
sub edi, eax
add esp, 0x20
cmp edi, ebx
mov dword [ebp - 0x24], edi
jg 0x9650c5
mov dword [ebp - 0x24], ebx
fild dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
push dword [eax + 0xfc]
add eax, 0xf4
fmul qword [0xb00110]
push eax
fild dword [ebp - 0x24]
fmul qword [0xb04f48]
fadd qword [0xb064d0]
fdivp st(1)
fmul qword [0xafece8]
fstp qword [ebp - 0x48]
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
jle 0x965106
mov ecx, eax
jmp 0x965108
xor ecx, ecx
mov eax, 0x3e7
cmp ecx, eax
mov dword [ebp - 0x24], ecx
jl 0x965117
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fcomp qword [ebp - 0x48]
fnstsw ax
sahf
jbe 0x965125
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp + 0x18]
lea ecx, [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov edi, dword [eax]
mov esi, dword [eax + 4]
push ebx
push ebx
push ebx
push ebx
push ebx
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0xbdd7e4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
call fcn.00426d6e
push esi
mov esi, dword [ebp - 0x10]
push edi
push ebx
push ebx
push dword [ebp - 0x34]
lea ecx, [esi + 0x88]
mov byte [ebp - 4], bl
call fcn.00451dca
push eax
push dword [ebp - 0x40]
call fcn.00994c7a
add eax, 0x64
push eax
push ebx
mov ecx, esi
call fcn.007ad838
mov ecx, dword [ebp + 0x18]
push eax
call fcn.0069960d
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
jmp 0x96519b
or dword [ebp + 8], 0xffffffff
mov dword [ebp - 0x3c], 1
cmp dword [ebp - 0x3c], ebx
jne 0x9651ad
cmp dword [ebp + 8], 1
jg 0x9651ad
mov dword [ebp + 8], 1
cmp dword [ebp - 0x58], ebx
je 0x9651d1
mov ecx, dword [0xbd8fec]
push ebx
push 0x3e8
push 0x40413d
call fcn.00769b51
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0093cb27
cmp dword [ebp - 0x38], ebx
je 0x965375
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x88]
push 1
lea eax, [ebp - 0x8c]
push eax
call fcn.004517d4
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x84]
sub esi, eax
mov edi, 0xbdf028
mov dword [ebp - 0x24], eax
mov ecx, edi
je 0x96521c
call fcn.00416e71
xor edx, edx
div esi
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x44], edx
jmp 0x965224
call fcn.00416e71
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x88]
mov esi, dword [ebp - 0x80]
sub esi, eax
mov dword [ebp - 0x24], eax
mov ecx, edi
je 0x965247
call fcn.00416e71
xor edx, edx
div esi
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x14], edx
jmp 0x96524f
call fcn.00416e71
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx + 0x78]
cmp eax, ebx
lea esi, [ecx + 0x78]
je 0x965269
mov eax, dword [eax]
cmp eax, ebx
je 0x965269
mov eax, dword [eax - 4]
shr eax, 1
jmp 0x96526b
xor eax, eax
cmp eax, ebx
je 0x965348
cmp dword [ecx + 0x84], ebx
je 0x9652b8
push 0xc00614a4
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push ebx
call fcn.0043286e
mov edi, dword [ebp - 0x10]
push ebx
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x3c], esp
push eax
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.004b1c27
lea ecx, [edi + 0x88]
mov byte [ebp - 4], bl
call fcn.00451dca
neg eax
sbb eax, eax
inc eax
jmp 0x965333
cmp dword [ecx + 0x9c], ebx
push 0xc00614a4
push ecx
mov ecx, esp
je 0x965309
mov dword [ebp - 0x7c], esp
push ebx
call fcn.0043286e
push ebx
push ebx
push ecx
mov ecx, dword [ebp - 0x10]
mov eax, esp
mov dword [ebp - 0x24], esp
push eax
mov byte [ebp - 4], 0xb
call fcn.004b1c27
push dword [ebp - 0x60]
mov ecx, esi
mov byte [ebp - 4], bl
call fcn.0040b42d
push eax
call fcn.0043291a
mov ecx, eax
call fcn.004393fd
mov dword [ebp - 0x7c], 1
jmp 0x965348
mov dword [ebp - 0x24], esp
push ebx
call fcn.0043286e
push dword [ebp - 0x14]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x44]
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push ebx
call fcn.0043283b
xor eax, eax
cmp dword [ebp + 0x20], ebx
mov byte [ebp - 4], bl
setg al
push eax
mov ecx, esi
call fcn.0040b42d
push eax
call fcn.0043291a
mov ecx, eax
call fcn.004393fd
mov eax, dword [ebp - 0x4c]
push dword [eax + 0x14]
add eax, 0xc
push eax
call fcn.006a0b2d
push dword [ebp - 0x14]
mov esi, eax
push dword [ebp - 0x44]
call fcn.009968d6
push eax
mov eax, dword [ebp + 0x1c]
add eax, 0xb
push eax
push esi
call fcn.00996f84
add esp, 0x1c
cmp dword [ebp + 0xc], ebx
jne 0x96537f
cmp dword [ebp + 0x10], ebx
je 0x9653a6
mov eax, dword [ebp - 0x10]
fild dword [ebp + 0x10]
mov ecx, dword [eax + 0xf28]
push ecx
push ecx
fstp qword [esp]
push ecx
fild dword [ebp + 0xc]
push ecx
lea eax, [ecx - 0xc]
neg ecx
sbb ecx, ecx
fstp qword [esp]
and ecx, eax
call fcn.007accff
cmp dword [ebp + 8], ebx
mov esi, 0x5dc
jg 0x9653c8
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x1b90]
push 0xfffffa24
call fcn.004299f9
jmp 0x9654b6
mov edi, dword [ebp - 0x10]
lea ecx, [edi + 0x1b90]
push esi
call fcn.004299f9
push esi
add edi, 0x88
push 1
mov ecx, edi
call fcn.00451c8c
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x3bc], 0x1388
mov eax, dword [eax + 0x28c0]
cmp eax, 0x404139
je 0x965410
push eax
call fcn.00509ec3
test eax, eax
pop ecx
je 0x9654b6
mov esi, dword [ebp - 0x10]
push dword [esi + 0x28c0]
call fcn.00509ec3
test eax, eax
pop ecx
je 0x9654b6
mov eax, dword [esi + 0x28c0]
mov ecx, 0x236a69
cmp eax, ecx
jg 0x96545b
je 0x9654b6
cmp eax, 0x111ae9
je 0x9654b6
cmp eax, 0x12a189
je 0x9654b6
cmp eax, 0x142829
je 0x9654b6
cmp eax, 0x205d29
je 0x9654b6
cmp eax, 0x21e3c9
jmp 0x96547c
cmp eax, 0x312609
je 0x9654b6
cmp eax, 0x4dd5cc
je 0x9654b6
cmp eax, 0x4f5c6a
je 0x9654b6
cmp eax, 0xd7511e
je 0x9654b6
cmp eax, 0xe66c4b
je 0x9654b6
mov ecx, edi
call fcn.00451b00
cmp eax, 0xffffffff
jle 0x96549d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x44]
mov eax, dword [edi]
push ebx
push 0x64
push 6
mov ecx, edi
call dword [eax + 0x10]
push ebx
lea ecx, [esi + 0x2eec]
mov dword [esi + 0x2ee4], ebx
call fcn.00429919
mov ecx, esi
call fcn.00968550
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
call fcn.009693f7
mov edi, dword [ebp - 0x18]
push dword [edi + 0x2b9c]
lea esi, [edi + 0x2b9c]
add edi, 0x2b94
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp + 0x10], ebx
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
jle 0x96550c
push dword [esi]
push edi
call fcn.00416de8
mov edx, eax
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x14]
pop ecx
pop ecx
mov ecx, 0x3e8
mov esi, ecx
sub esi, edx
imul eax, esi
cdq
idiv ecx
mov dword [ebp + 0x10], eax
push dword [ebp + 8]
mov esi, dword [ebp - 0x10]
push dword [ebp - 0x74]
mov ecx, esi
call fcn.0096cad4
mov edi, eax
cmp edi, ebx
mov dword [ebp + 8], edi
jl 0x96554e
call fcn.004376f2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x1c]
cmp eax, 0x13
je 0x96554e
mov eax, dword [ebp + 0x10]
sub eax, edi
add eax, dword [ebp - 0x14]
mov ecx, esi
add eax, dword [ebp - 0x58]
add eax, dword [ebp + 0x28]
push eax
call fcn.009353b0
jmp 0x965583
cmp edi, 0xffffffff
jne 0x965583
cmp dword [ebp - 0x54], ebx
mov eax, dword [ebp - 0x70]
jne 0x96555e
mov eax, dword [ebp - 0x78]
push ebx
push 0x3e8
push eax
mov ecx, esi
call fcn.0093cb27
cmp dword [ebp - 0x54], ebx
jne 0x965583
push 0x5dc
push 2
lea ecx, [esi + 0x88]
call fcn.00451c8c
cmp dword [ebp + 0x2c], ebx
je 0x96570a
push 0x2c
lea ecx, [ebp - 0x30]
call fcn.006f5e40
mov byte [ebp - 4], 0xf
call fcn.00994c7a
push eax
lea ecx, [ebp - 0x30]
call fcn.0040667c
mov esi, dword [ebp + 0x18]
cmp esi, ebx
jne 0x9655de
push 0xfe
lea ecx, [ebp - 0x30]
call fcn.0040661f
push ebx
lea ecx, [ebp - 0x30]
call fcn.0040661f
push edi
lea ecx, [ebp - 0x30]
call fcn.0040667c
push dword [ebp + 0x14]
lea ecx, [ebp - 0x30]
call fcn.004291b3
jmp 0x9656f0
push dword [ebp + 0x1c]
lea ecx, [ebp - 0x30]
call fcn.0040661f
push dword [ebp - 0x74]
lea ecx, [ebp - 0x30]
call fcn.0040661f
push edi
lea ecx, [ebp - 0x30]
call fcn.0040667c
mov eax, dword [esi + 0x178]
push dword [eax + 0x14]
add eax, 0xc
push eax
call fcn.006a0b2d
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.0040667c
push dword [esi + 0x174]
lea ecx, [ebp - 0x30]
call fcn.0040667c
cmp dword [ebp - 0x7c], ebx
je 0x965632
mov eax, dword [ebp - 0x60]
jmp 0x96563a
xor eax, eax
cmp dword [ebp + 0x20], ebx
setl al
push eax
lea ecx, [ebp - 0x30]
call fcn.0040661f
push dword [ebp - 0x34]
lea ecx, [ebp - 0x30]
call fcn.0040661f
cmp dword [ebp - 0x6c], ebx
setne al
inc eax
cmp dword [ebp - 0x54], ebx
sete cl
dec ecx
and ecx, eax
push ecx
lea ecx, [ebp - 0x30]
call fcn.0040661f
cmp dword [ebp - 0x6c], ebx
jne 0x965671
cmp dword [ebp - 0x34], ebx
je 0x9656e5
cmp dword [ebp + 0x24], ebx
setne al
cmp dword [ebp - 0x34], ebx
sete cl
dec ecx
and ecx, eax
push ecx
lea ecx, [ebp - 0x30]
call fcn.0040661f
push dword [esi + 0x174]
lea ecx, [ebp - 0x30]
call fcn.0040667c
push dword [ebp - 0x40]
lea ecx, [ebp - 0x30]
call fcn.0040661f
push dword [ebp - 0x20]
lea ecx, [ebp - 0x30]
call fcn.004291b3
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
call fcn.004291b3
mov eax, dword [ebp - 0x10]
lea esi, [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
mov ax, word [eax]
lea ecx, [ebp - 0x30]
push eax
call fcn.004291b3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
mov ax, word [eax + 4]
lea ecx, [ebp - 0x30]
push eax
call fcn.004291b3
push dword [ebp - 0x50]
lea ecx, [ebp - 0x30]
call fcn.0040661f
mov ecx, dword [0xbd9024]
lea eax, [ebp - 0x30]
push eax
call fcn.00495c5c
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], bl
call fcn.00429f38
mov esi, dword [ebp - 0x18]
push dword [esi + 0x22c8]
lea edi, [esi + 0x22c0]
push edi
mov dword [ebp + 0x18], ebx
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
je 0x96578e
push dword [esi + 0x279c]
lea eax, [esi + 0x2794]
push eax
call fcn.00416de8
cmp eax, ebx
pop ecx
pop ecx
push dword [esi + 0x22c8]
push edi
je 0x96575a
call fcn.00416de8
imul eax, dword [ebp + 8]
pop ecx
pop ecx
push 0x64
cdq
pop ecx
idiv ecx
jmp 0x96578b
call fcn.00416de8
mov edi, eax
mov eax, dword [ebp - 0x5c]
push dword [eax + 0x75]
add eax, 0x71
push eax
call fcn.0047376f
add esp, 0x10
push 0x64
mov ecx, eax
mov eax, edi
imul eax, dword [ebp + 8]
cdq
pop edi
idiv edi
movsx ecx, cx
mov dword [ebp + 0x18], ecx
cmp ecx, eax
jl 0x96578e
mov dword [ebp + 0x18], eax
cmp dword [ebp + 0x28], ebx
mov byte [ebp + 0xc], bl
je 0x96579c
mov byte [ebp + 0xc], 1
jmp 0x9657b0
cmp dword [ebp - 0x58], ebx
je 0x9657a7
mov byte [ebp + 0xc], 2
jmp 0x9657b0
cmp dword [ebp + 0x18], ebx
je 0x9657b0
mov byte [ebp + 0xc], 4
cmp dword [ebp + 8], ebx
jge 0x9657c0
cmp dword [ebp - 0x64], ebx
mov dword [ebp + 8], ebx
je 0x9657c0
mov dword [ebp + 0x28], ebx
mov eax, dword [ebp + 8]
sub eax, dword [ebp + 0x18]
push dword [ebp + 0xc]
sub eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
push ebx
sub eax, dword [ebp - 0x58]
mov ecx, edi
sub eax, dword [ebp + 0x28]
push eax
call fcn.00967ff1
test byte [ebp + 0xc], 4
je 0x9657fb
push ebx
push ebx
push ebx
mov ecx, edi
mov dword [edi + 0x28bc], 1
call fcn.0096823f
cmp dword [ebp + 8], ebx
jle 0x965820
push dword [edi + 0x294c]
add edi, 0x2944
push edi
call fcn.006a0adf
cmp eax, ebx
pop ecx
pop ecx
je 0x965820
push ebx
mov ecx, esi
call fcn.00a18753
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.004a0709
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x28