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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x60]
call dword [sym.imp.libpcaewin.dll_CurOb_Application_Number]
mov esi, eax
mov eax, dword [esp + 0x64]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.005252d0
mov eax, dword [esp + 0x64]
sub eax, 4
mov dword [esp + 0x1c], eax
lea eax, [esi - 0x72]
cmp eax, 1
jbe 0x52b6f0
mov edx, dword [0x859378]
mov eax, dword [ebx + 4]
cmp esi, 0x23
je 0x52a580
cmp edx, 1
jle 0x52ba90
cmp esi, 0x20
jne 0x52b910
mov dword [0x85a440], eax
mov ebp, 1
mov edi, 2
mov byte [esp + 0x37], 1
mov byte [esp + 0x20], 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
jmp 0x52a5ec
mov dword [esp + 0x28], 0
mov esi, 0x21
cmp edx, 1
jle 0x52b8e0
cmp esi, 0x21
mov edi, esi
mov dword [0x85a440], eax
sete cl
cmp esi, 0x54
sete byte [esp + 0x20]
and edi, 0xfffffffb
cmp edi, 0x50
setne dl
cmp esi, 0x21
mov ebp, edx
setne dl
mov edi, edx
mov edx, ebp
and edx, edi
or cl, byte [esp + 0x20]
mov byte [esp + 0x37], dl
mov ebp, ecx
je 0x52bbfc
mov byte [esp + 0x20], 0
mov edi, 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov eax, dword [ebx + 0x10]
mov edx, 2
mov dword [0x85a3ac], eax
mov eax, dword [ebx + 0x14]
mov dword [0x85a3a8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x85a3a0], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x85a39c], eax
mov eax, dword [ebx + 0x20]
mov dword [0x85a394], eax
mov eax, dword [ebx + 0x24]
cmp eax, 1
je 0x52a62c
cmp eax, 2
je 0x52b840
xor eax, eax
mov dword [0x85a390], eax
mov eax, dword [ebx + 0x28]
mov dword [0x85a38c], edx
mov dword [0x85a3a4], eax
xor eax, eax
cmp dword [esp + 0x1c], 1
jbe 0x52a64b
mov eax, dword [ebx + 0x30]
fld qword [ebx + 0x218]
mov edx, dword [ebx + 0x48]
mov dword [0x85a384], eax
mov eax, dword [ebx + 0x34]
mov dword [0x85a398], eax
mov eax, dword [ebx + 0x2c]
fstp qword [0x85a360]
fld qword [ebx + 0x220]
mov dword [0x85a388], eax
mov eax, dword [ebx + 0x40]
fstp qword [0x85a358]
fld qword [ebx + 0x1f8]
mov dword [0x85a380], eax
mov eax, dword [ebx + 0x38]
mov dword [0x85a370], eax
mov eax, dword [ebx + 0x3c]
fstp qword [0x85a350]
fld qword [ebx + 0x200]
mov dword [0x85a36c], eax
mov eax, dword [ebx + 0x44]
fstp qword [0x85a348]
fld qword [ebx + 0x208]
mov dword [0x85a37c], eax
mov eax, 2
cmp edx, eax
cmovle eax, edx
fstp qword [0x85a340]
fld qword [ebx + 0x210]
mov dword [0x85a368], eax
setle al
movzx eax, al
fstp qword [0x85a338]
fld qword [ebx + 0x228]
and eax, ebp
mov dword [0x85a32c], eax
mov eax, dword [ebx + 0x50]
fstp qword [0x85a330]
mov dword [0x85a378], eax
mov eax, dword [ebx + 0x4c]
fld qword [ebx + 0x230]
sub eax, 1
mov dword [0x85a374], eax
mov eax, dword [ebx + 0x54]
fstp qword [0x85a258]
fld qword [ebx + 0x240]
mov dword [0x85a328], eax
mov eax, dword [ebx + 0x58]
mov dword [0x85a324], eax
mov eax, dword [ebx + 0x5c]
fstp qword [0x85a268]
mov dword [0x85a31c], eax
mov eax, dword [ebx + 0x60]
mov dword [0x85a318], eax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x6c]
cmp esi, 0x3a
jg 0x52b690
cmp esi, 0x1f
jle 0x52b6b0
lea ecx, [esi - 0x20]
mov edx, 0x5000003
bt edx, ecx
jae 0x52b6b0
mov ecx, dword [esp + 0x38]
xor edx, edx
test ecx, ecx
setg dl
mov dword [0x85a310], edx
fld qword [ebx + 0x238]
mov edx, dword [ebx + 0x74]
mov dword [0x85a30c], eax
xor eax, eax
fstp qword [0x85a0a8]
fld qword [ebx + 0x248]
fchs
fstp qword [0x85a0a0]
fld qword [ebx + 0x250]
fchs
fstp qword [0x85a098]
fld qword [ebx + 0x258]
fstp qword [0x85a090]
fld qword [ebx + 0x260]
fstp qword [0x85a088]
fld qword [ebx + 0x268]
fstp qword [0x85a080]
fld qword [ebx + 0x278]
fstp qword [0x85a078]
fld qword [ebx + 0x280]
fstp qword [0x85a070]
fld qword [ebx + 0x288]
fstp qword [0x85a068]
fld qword [ebx + 0x290]
fstp qword [0x85a060]
fld qword [ebx + 0x270]
fst qword [0x85a250]
fld qword [0x788610]
fcompi st(1)
fstp st(0)
seta al
cmp byte [esp + 0x20], 0
jne 0x52a890
cmp esi, 0x20
jne 0x52b8a0
cmp dword [esp + 0x64], 7
jne 0x52b8a0
mov ecx, dword [ebx + 0x70]
mov dword [0x85a308], edx
mov dword [0x85a320], eax
mov dword [0x85a314], ecx
fld dword [0x788688]
mov edx, dword [esp + 0x28]
fstp qword [0x85a270]
xor eax, eax
test edx, edx
je 0x52a863
mov eax, dword [ebx + 0x78]
mov dword [esp + 4], 0
mov dword [esp], edi
mov dword [0x85a304], eax
call fcn.004fd9f0
cmp eax, dword [0x85a31c]
jge 0x52a8c4
mov dword [0x85a31c], 2
jmp 0x52a8c4
mov ecx, dword [ebx + 0x70]
mov dword [0x85a308], edx
mov dword [0x85a320], eax
mov dword [0x85a314], ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x52ba78
mov eax, dword [ebx + 0x78]
fld qword [ebx + 0x2b8]
mov dword [0x85a304], eax
fstp qword [0x85a270]
fld qword [ebx + 0x2c0]
mov eax, dword [ebx + 0x7c]
cmp dword [esp + 0x1c], 1
mov dword [0x85a300], eax
mov eax, dword [ebx + 0x80]
fstp qword [0x85a260]
fld qword [ebx + 0x570]
mov dword [0x85a2f8], eax
fstp qword [0x85a248]
fld qword [ebx + 0x2c8]
fstp qword [0x85a240]
fld1
ja 0x52a90c
fstp st(0)
fld qword [ebx + 0x2d0]
fstp qword [0x85a238]
fld qword [ebx + 0x2d8]
mov eax, dword [ebx + 0x530]
mov edx, dword [ebx + 0x534]
mov ecx, dword [ebx + 0x5a4]
mov dword [0x85a2fc], eax
mov eax, dword [ebx + 0x68]
fstp qword [0x85a230]
fld qword [ebx + 0x2e0]
mov dword [0x85a2f4], eax
xor eax, eax
test edx, edx
sete al
fstp qword [0x85a228]
fld qword [ebx + 0x2f0]
mov dword [0x85a2f0], eax
mov eax, dword [ebx + 0x580]
fstp qword [0x85a220]
fld qword [ebx + 0x560]
mov dword [0x85a2ec], eax
mov eax, dword [ebx + 0x588]
fstp qword [0x85a218]
fld qword [ebx + 0x568]
add eax, 1
mov dword [0x85a2e8], eax
mov eax, dword [ebx + 0x590]
fstp qword [0x85a210]
fild dword [ebx + 0x584]
add eax, 1
mov dword [0x85a2e4], eax
xor eax, eax
test ecx, ecx
sete al
fstp qword [0x85a208]
fld qword [ebx + 0x608]
mov dword [0x85a2e0], eax
fstp qword [0x85a200]
fild dword [ebx + 0x58c]
fstp qword [0x85a1e0]
fld qword [ebx + 0x610]
fstp qword [0x85a1f8]
mov eax, dword [ebx + 0x594]
fld qword [ebx + 0x740]
mov dword [0x859d80], 0
mov dword [0x859d7c], 0
mov edx, eax
fstp qword [0x85a1a8]
shr edx, 2
fld qword [ebx + 0x618]
and edx, 1
mov dword [0x85a2dc], edx
mov edx, eax
fstp qword [0x85a1f0]
shr edx, 3
fld qword [ebx + 0x620]
and edx, 1
mov dword [0x85a2d8], edx
mov edx, eax
shr eax, 1
fstp qword [0x85a1e8]
and eax, 1
fld qword [ebx + 0x748]
and edx, 1
mov dword [0x85a2d0], eax
mov eax, dword [ebx + 0x59c]
mov dword [0x85a2d4], edx
fstp qword [0x85a1a0]
add eax, 1
fld qword [0x7886c8]
fld qword [ebx + 0x628]
mov dword [0x85a2cc], eax
mov eax, dword [ebx + 0x5a0]
mov dword [0x85a2c8], eax
xor eax, eax
fcomi st(1)
fstp st(1)
fstp qword [0x85a1d8]
fld qword [ebx + 0x2e8]
seta al
xor edx, edx
mov dword [0x85a2c0], eax
mov eax, dword [ebx + 0x5a8]
fstp qword [0x85a1d0]
fld qword [ebx + 0x630]
add eax, 1
mov dword [0x85a2c4], eax
mov eax, dword [ebx + 0x598]
fstp qword [0x85a1c8]
fld qword [ebx + 0x578]
fstp qword [0x85a1c0]
mov dword [0x85a2bc], eax
mov eax, dword [ebx + 0x5ac]
fld dword [0x7886c0]
fmul qword [ebx + 0x6d0]
test eax, eax
setg dl
mov dword [0x85a2b0], edx
mov edx, 1
cmovle eax, edx
mov edx, dword [ebx + 0x5b0]
fstp qword [0x85a1b8]
fld qword [ebx + 0x6d8]
sub eax, 1
test edx, edx
mov dword [0x85a2ac], eax
lea eax, [edx - 1]
mov edx, 0xa
cmovle eax, edx
mov edx, dword [ebx + 0x5b4]
fstp qword [0x85a1b0]
test edx, edx
mov dword [0x85a2a8], eax
lea eax, [edx - 1]
mov edx, 4
cmovle eax, edx
mov dword [0x85a2a4], eax
mov eax, dword [ebx + 0x84]
mov dword [0x85a2b8], eax
mov eax, dword [ebx + 0x698]
mov dword [0x85a2a0], eax
mov eax, dword [ebx + 0x69c]
mov dword [0x85a29c], eax
mov eax, dword [ebx + 0x6a0]
mov dword [0x85a298], eax
mov eax, dword [ebx + 0x6b0]
mov dword [0x85a294], eax
mov eax, dword [ebx + 0x6b4]
mov dword [0x85a290], eax
mov eax, dword [ebx + 0x6b8]
mov dword [0x85a28c], eax
mov eax, dword [ebx + 0x5f4]
mov dword [0x85a2b4], eax
mov eax, dword [ebx + 0x88]
mov dword [0x85a288], eax
mov eax, dword [ebx + 0x8c]
mov dword [0x85a284], eax
fld qword [ebx + 0x638]
mov eax, dword [ebx + 0x5fc]
fstp qword [0x85a198]
fld qword [ebx + 0x640]
mov dword [0x85a280], eax
xor eax, eax
fst qword [0x85a190]
fld qword [0x7886b8]
fxch st(1)
fcompi st(1)
fstp st(0)
fld qword [ebx + 0x648]
seta al
mov dword [0x85a058], eax
mov eax, dword [ebx + 0x90]
fstp qword [0x85a188]
mov dword [0x85a174], eax
xor eax, eax
cmp esi, 0x54
je 0x52ac09
mov eax, dword [ebx + 0x94]
mov dword [0x85a184], eax
mov eax, dword [ebx + 0x98]
fld qword [ebx + 0x2f8]
mov dword [0x85a180], eax
mov eax, dword [ebx + 0xb0]
fstp qword [0x85a148]
mov dword [0x85a170], eax
cmp eax, 1
je 0x52b530
fld qword [ebx + 0x308]
fst qword [0x85a140]
fld qword [ebx + 0x310]
fstp qword [0x85a138]
mov eax, dword [0x85a328]
fstp qword [esp + 0x38]
fld qword [0x85a0a8]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 4]
call fcn.004fe780
fld qword [esp + 0x38]
cmp dword [ebx + 0xb0], 1
fdivrp st(1)
fstp qword [0x85a100]
je 0x52b5b4
fld qword [ebx + 0x310]
mov eax, dword [0x85a324]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 0x38]
fld qword [0x85a078]
fstp qword [esp + 4]
call fcn.004fe7e0
fdivr qword [esp + 0x38]
fstp qword [0x85a0f8]
fld qword [ebx + 0x318]
mov eax, dword [ebx + 0xa4]
mov edx, dword [ebx + 0xa8]
mov dword [0x85a178], eax
mov eax, 2
fstp qword [0x85a130]
fld qword [ebx + 0x328]
cmp edx, eax
cmovle eax, edx
fstp qword [0x85a128]
fld qword [ebx + 0x330]
mov dword [0x85a16c], eax
setle al
movzx eax, al
fstp qword [0x85a120]
fld qword [ebx + 0x338]
and eax, ebp
mov dword [0x85a05c], eax
mov eax, dword [ebx + 0xb4]
fstp qword [0x85a118]
fld qword [ebx + 0x340]
mov dword [0x85a164], eax
mov eax, dword [ebx + 0xac]
fstp qword [0x85a110]
fld qword [ebx + 0x320]
mov dword [0x85a168], eax
mov eax, dword [ebx + 0x540]
fstp qword [0x85a0f0]
fild dword [ebx + 0xa0]
fstp qword [0x85a108]
cmp eax, 1
je 0x52b820
cmp eax, 4
mov edx, 1
cmove eax, edx
fld qword [ebx + 0x300]
mov dword [0x85a17c], eax
mov eax, dword [ebx + 0x548]
fstp qword [0x85a0e8]
fld qword [ebx + 0x550]
mov dword [0x85a160], eax
mov eax, dword [ebx + 0x9c]
fstp qword [0x85a0e0]
fld qword [ebx + 0x6f0]
mov dword [0x85a15c], eax
mov eax, dword [ebx + 0x6c8]
fstp qword [0x85a0d8]
fld qword [ebx + 0x6f8]
mov dword [0x85a158], eax
mov eax, dword [ebx + 0xbc]
fstp qword [0x85a0d0]
fld qword [ebx + 0x710]
mov dword [0x85a154], eax
mov eax, dword [ebx + 0xc0]
fstp qword [0x85a0c8]
fld qword [ebx + 0x718]
mov dword [0x85a054], eax
mov eax, dword [ebx + 0xc4]
fstp qword [0x85a0c0]
fld qword [ebx + 0x720]
mov dword [0x85a050], eax
mov eax, dword [ebx + 0xc8]
fstp qword [0x85a0b8]
fld qword [ebx + 0x468]
mov dword [0x85a048], eax
mov eax, dword [ebx + 0xcc]
fstp qword [0x85a0b0]
mov dword [0x85a044], eax
fld qword [ebx + 0x348]
mov eax, dword [ebx + 0xd0]
fstp qword [0x859f90]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0xd8]
cmp esi, 0x3a
jg 0x52b6c0
cmp esi, 0x1f
jle 0x52b6e0
lea ecx, [esi - 0x20]
mov edx, 0x5000003
bt edx, ecx
jae 0x52b6e0
mov ecx, dword [esp + 0x38]
xor edx, edx
test ecx, ecx
setg dl
mov dword [0x85a03c], edx
fld qword [ebx + 0x350]
mov dword [0x85a038], eax
xor eax, eax
mov edx, dword [ebx + 0xe0]
fstp qword [0x859df0]
fld qword [ebx + 0x360]
fchs
fstp qword [0x859de8]
fld qword [ebx + 0x368]
fchs
fstp qword [0x859de0]
fld qword [ebx + 0x370]
fstp qword [0x859dd8]
fld qword [ebx + 0x378]
fstp qword [0x859db0]
fld qword [ebx + 0x380]
fstp qword [0x859da8]
fld qword [ebx + 0x390]
fstp qword [0x859dd0]
fld qword [ebx + 0x398]
fstp qword [0x859dc8]
fld qword [ebx + 0x3a0]
fstp qword [0x859dc0]
fld qword [ebx + 0x3a8]
fstp qword [0x859db8]
fld qword [ebx + 0x388]
fst qword [0x859f88]
fld qword [0x788610]
fcompi st(1)
fstp st(0)
seta al
cmp byte [esp + 0x20], 0
jne 0x52b650
cmp esi, 0x20
jne 0x52b880
cmp dword [esp + 0x64], 7
jne 0x52b880
mov ecx, dword [ebx + 0xdc]
mov dword [0x85a034], edx
mov dword [0x85a04c], eax
mov dword [0x85a040], ecx
fld dword [0x788688]
lea esi, [esi]
mov eax, dword [esp + 0x28]
fstp qword [0x859fa0]
test eax, eax
je 0x52af70
mov eax, dword [ebx + 0xe4]
mov dword [esp + 0x28], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 0x28]
mov dword [esp], edi
mov dword [0x85a030], eax
call fcn.004fd9f0
cmp eax, dword [0x85a048]
jge 0x52af9b
mov dword [0x85a048], 2
mov eax, dword [ebx + 0xe8]
fld qword [ebx + 0x3d8]
mov dword [0x85a02c], eax
mov eax, dword [ebx + 0x538]
fstp qword [0x859f98]
mov dword [0x85a028], eax
mov eax, dword [ebx + 0xf0]
mov dword [0x859ef0], eax
xor eax, eax
cmp esi, 0x54
je 0x52afd5
mov eax, dword [ebx + 0xf4]
mov dword [0x859f00], eax
mov eax, dword [ebx + 0xf8]
fld qword [ebx + 0x3e0]
mov dword [0x859efc], eax
mov eax, dword [ebx + 0x110]
fstp qword [0x859ec0]
mov dword [0x859eec], eax
cmp eax, 1
je 0x52b5c0
fld qword [ebx + 0x3f0]
fst qword [0x859eb8]
fld qword [ebx + 0x3f8]
fstp qword [0x859eb0]
mov eax, dword [0x85a054]
fstp qword [esp + 0x20]
fld qword [0x859df0]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 4]
call fcn.004fe780
fld qword [esp + 0x20]
cmp dword [ebx + 0x110], 1
fdivrp st(1)
fstp qword [0x859e78]
je 0x52b644
fld qword [ebx + 0x3f8]
mov eax, dword [0x85a050]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 0x20]
fld qword [0x859dd0]
fstp qword [esp + 4]
call fcn.004fe7e0
fdivr qword [esp + 0x20]
fstp qword [0x859e70]
fld qword [ebx + 0x400]
mov eax, dword [ebx + 0x100]
mov edx, dword [ebx + 0x108]
mov dword [0x859ef4], eax
mov eax, 2
fstp qword [0x859ea8]
fld qword [ebx + 0x428]
cmp edx, eax
cmovle eax, edx
fstp qword [0x859ea0]
fld qword [ebx + 0x430]
mov dword [0x859ee8], eax
setle al
movzx eax, al
fstp qword [0x859e98]
fld qword [ebx + 0x438]
and eax, ebp
cmp dword [esp + 0x1c], 1
mov dword [0x859da4], eax
mov eax, dword [ebx + 0x114]
fstp qword [0x859e90]
fld qword [ebx + 0x440]
mov dword [0x859ee0], eax
mov eax, dword [ebx + 0x10c]
fstp qword [0x859e88]
fld qword [ebx + 0x408]
mov dword [0x859ee4], eax
fstp qword [0x859e68]
fild dword [ebx + 0x104]
fstp qword [0x859e80]
fld qword [ebx + 0x448]
fstp qword [0x859f78]
fld1
ja 0x52b138
fstp st(0)
fld qword [ebx + 0x450]
mov eax, dword [ebx + 0x544]
fstp qword [0x859f70]
cmp eax, 1
je 0x52b830
cmp eax, 4
mov edx, 1
cmove eax, edx
fld qword [ebx + 0x410]
mov dword [0x859ef8], eax
mov esi, dword [ebx + 0x53c]
mov eax, dword [ebx + 0xd4]
mov ebp, dword [ebx + 0x5dc]
fstp qword [0x859e60]
fld qword [ebx + 0x420]
mov dword [0x859edc], eax
xor eax, eax
test esi, esi
sete al
fstp qword [0x859e50]
fld qword [ebx + 0x3e8]
mov dword [0x85a024], eax
mov eax, dword [ebx + 0x5b8]
fstp qword [0x859e48]
fld qword [ebx + 0x558]
mov dword [0x85a018], eax
mov eax, dword [ebx + 0x5c0]
fstp qword [0x859e40]
fild dword [ebx + 0x5bc]
add eax, 1
mov dword [0x85a014], eax
mov eax, dword [ebx + 0x5c8]
fstp qword [0x859f68]
fld qword [ebx + 0x650]
add eax, 1
mov dword [0x85a010], eax
xor eax, eax
test ebp, ebp
sete al
fstp qword [0x859f60]
fild dword [ebx + 0x5c4]
mov dword [0x85a00c], eax
fstp qword [0x859f40]
fld qword [ebx + 0x658]
fstp qword [0x859f58]
fld qword [ebx + 0x750]
fstp qword [0x859f28]
fld qword [ebx + 0x660]
fstp qword [0x859f50]
mov eax, dword [ebx + 0x5cc]
fld qword [ebx + 0x668]
mov dword [0x859d78], 0
mov dword [0x859d74], 0
mov edx, eax
shr edx, 2
fstp qword [0x859f48]
fld qword [ebx + 0x758]
and edx, 1
mov dword [0x85a008], edx
mov edx, eax
shr edx, 3
fstp qword [0x859f20]
fld qword [0x7886c8]
fld qword [ebx + 0x670]
and edx, 1
mov dword [0x85a004], edx
mov edx, eax
shr eax, 1
and eax, 1
and edx, 1
mov dword [0x859ffc], eax
mov eax, dword [ebx + 0x5d4]
mov dword [0x85a000], edx
add eax, 1
mov dword [0x859ff8], eax
mov eax, dword [ebx + 0x5d8]
mov dword [0x859ff4], eax
xor eax, eax
fcomi st(1)
fstp st(1)
seta al
fstp qword [0x859f38]
fld qword [ebx + 0x418]
xor edx, edx
mov dword [0x859fec], eax
mov eax, dword [ebx + 0x5e0]
add eax, 1
fstp qword [0x859e58]
fld qword [ebx + 0x678]
mov dword [0x859ff0], eax
mov eax, dword [ebx + 0xec]
mov dword [0x85a020], eax
mov eax, dword [ebx + 0x5f0]
fstp qword [0x859f30]
fld qword [ebx + 0x458]
mov dword [0x859fe8], eax
mov eax, dword [ebx + 0x5e4]
test eax, eax
fstp qword [0x859e38]
setg dl
cmp eax, 1
adc eax, 0xffffffff
mov dword [0x859fdc], edx
mov edx, 0xa
fld dword [0x7886c0]
mov dword [0x859fd8], eax
mov eax, dword [ebx + 0x5e8]
fmul qword [ebx + 0x6e0]
sub eax, 1
cmovb eax, edx
mov edx, 4
mov dword [0x859fd4], eax
mov eax, dword [ebx + 0x5ec]
fstp qword [0x859e30]
fld qword [ebx + 0x6e8]
sub eax, 1
cmovb eax, edx
fstp qword [0x859e28]
fld qword [ebx + 0x700]
mov dword [0x859fd0], eax
mov eax, dword [ebx + 0x118]
mov dword [0x859fe4], eax
mov eax, dword [ebx + 0x6a4]
fstp qword [0x859e20]
fld qword [ebx + 0x708]
mov dword [0x859fcc], eax
mov eax, dword [ebx + 0x6a8]
mov dword [0x859fc8], eax
mov eax, dword [ebx + 0x6ac]
fstp qword [0x859e18]
mov dword [0x859fc4], eax
mov eax, dword [ebx + 0x6bc]
mov dword [0x859fc0], eax
mov eax, dword [ebx + 0x6c0]
mov dword [0x859fbc], eax
mov eax, dword [ebx + 0x6c4]
mov dword [0x859fb8], eax
mov eax, dword [ebx + 0xfc]
mov dword [0x859ed8], eax
mov eax, dword [ebx + 0x6cc]
mov dword [0x859ed4], eax
mov eax, dword [ebx + 0x5d0]
fld qword [ebx + 0x728]
mov dword [0x859ed0], eax
mov eax, dword [ebx + 0x11c]
fstp qword [0x859e10]
fld qword [ebx + 0x730]
mov dword [0x859ecc], eax
mov eax, dword [ebx + 0x5f8]
fstp qword [0x859e08]
fld qword [ebx + 0x738]
mov dword [0x859fe0], eax
mov eax, dword [ebx + 0x120]
fstp qword [0x859e00]
fld qword [ebx + 0x680]
mov dword [0x859fb4], eax
mov eax, dword [ebx + 0x124]
fstp qword [0x859f18]
fld qword [ebx + 0x688]
mov dword [0x859fb0], eax
mov eax, dword [ebx + 0x600]
fst qword [0x859f10]
fld qword [0x7886b8]
fxch st(1)
mov dword [0x859fac], eax
xor eax, eax
fcompi st(1)
fstp st(0)
fld qword [ebx + 0x690]
seta al
mov dword [0x859da0], eax
mov eax, dword [ebx + 0x128]
fstp qword [0x859f08]
fld qword [ebx + 0x460]
mov dword [0x85a27c], eax
fstp qword [0x859f80]
fld qword [ebx + 0x470]
fstp qword [0x859df8]
mov eax, dword [ebx + 0x12c]
mov dword [0x85a01c], eax
mov eax, dword [ebx + 0x130]
mov dword [0x85a278], eax
mov eax, dword [ebx + 0x134]
mov dword [0x859fa8], eax
mov eax, dword [ebx + 0x138]
mov dword [0x85a150], eax
mov eax, dword [ebx + 0x13c]
mov dword [esp + 4], 0x859d90
mov dword [esp], ebx
mov dword [0x859ec8], eax
call fcn.00558800
xor edx, edx
mov dword [0x859d98], eax
not eax
shr eax, 0x1f
cmp byte [esp + 0x37], 0
cmove eax, edx
mov dword [0x859d9c], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x52b850
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
fld qword [ebx + 0x760]
mov eax, dword [0x85a328]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 0x38]
fld qword [0x85a0a8]
fstp qword [esp + 4]
call fcn.004fe780
fmul qword [esp + 0x38]
cmp dword [ebx + 0xb0], 1
fstp qword [0x85a140]
jne 0x52b8c0
fld qword [ebx + 0x768]
mov eax, dword [0x85a324]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 0x38]
fld qword [0x85a078]
fstp qword [esp + 4]
call fcn.004fe7e0
fmul qword [esp + 0x38]
cmp dword [ebx + 0xb0], 1
fstp qword [0x85a138]
jne 0x52bb08
fld qword [ebx + 0x760]
fstp qword [0x85a100]
fld qword [ebx + 0x768]
jmp 0x52acb2
fld qword [ebx + 0x770]
mov eax, dword [0x85a054]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 0x20]
fld qword [0x859df0]
fstp qword [esp + 4]
call fcn.004fe780
fmul qword [esp + 0x20]
cmp dword [ebx + 0x110], 1
fstp qword [0x859eb8]
jne 0x52b8d0
fld qword [ebx + 0x778]
mov eax, dword [0x85a050]
mov dword [esp + 0xc], edi
mov dword [esp], eax
fstp qword [esp + 0x20]
fld qword [0x859dd0]
fstp qword [esp + 4]
call fcn.004fe7e0
fmul qword [esp + 0x20]
cmp dword [ebx + 0x110], 1
fstp qword [0x859eb0]
jne 0x52bb18
fld qword [ebx + 0x770]
fstp qword [0x859e78]
fld qword [ebx + 0x778]
jmp 0x52b07e
mov dword [0x85a04c], eax
mov ecx, dword [ebx + 0xdc]
mov eax, dword [esp + 0x2c]
mov dword [0x85a034], edx
mov dword [0x85a040], ecx
test eax, eax
je 0x52ba60
fld qword [ebx + 0x3d0]
mov eax, dword [ebx + 0xe4]
mov dword [0x85a030], eax
fstp qword [0x859fa0]
jmp 0x52af9b
lea ecx, [esi - 0x54]
cmp ecx, 0x14
ja 0x52ba40
mov edx, 0x100401
bt edx, ecx
jb 0x52a76b
lea esi, [esi]
mov ecx, dword [esp + 0x38]
mov dword [0x85a310], ecx
jmp 0x52a77c
lea ecx, [esi - 0x54]
cmp ecx, 0x14
ja 0x52ba20
mov edx, 0x100401
bt edx, ecx
jb 0x52ae65
lea esi, [esi]
mov ecx, dword [esp + 0x38]
mov dword [0x85a03c], ecx
jmp 0x52ae76
mov eax, dword [ebx + 4]
mov byte [esp + 0x37], 1
sub esi, 0xa
mov ebp, 1
mov byte [esp + 0x20], 0
mov edi, 4
mov dword [0x85a440], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
cmp dword [esp + 0x1c], 1
fld qword [ebx + 0x170]
fld qword [ebx + 0x1a8]
jbe 0x52b9af
cmp esi, 0x69
fld qword [ebx + 0x180]
mov eax, dword [ebx + 8]
sete cl
cmp esi, 0xf2
fld qword [ebx + 0x1b8]
sete dl
or dl, cl
jne 0x52b770
cmp esi, 0x38
jne 0x52bad3
fxch st(3)
jmp 0x52b772
fxch st(3)
fstp qword [0x85a428]
fstp qword [0x85a418]
fld qword [ebx + 0x1b0]
mov dword [0x85a444], eax
xor eax, eax
fstp qword [0x85a430]
fld qword [ebx + 0x1c0]
fstp qword [0x85a400]
fld qword [ebx + 0x178]
fstp qword [0x85a420]
fld qword [ebx + 0x188]
fstp qword [0x85a410]
fstp qword [0x85a408]
fstp qword [0x85a3f8]
fld qword [ebx + 0x198]
fst qword [0x85a3f0]
fadd qword [ebx + 0x1a0]
fstp qword [0x85a3e8]
fldz
fld qword [ebx + 0x1a0]
fcompi st(1)
fstp st(0)
fld qword [ebx + 0x190]
setne al
mov dword [0x85a438], eax
mov eax, dword [ebx + 0xc]
fstp qword [0x85a3d8]
mov dword [0x85a43c], eax
fld qword [ebx + 0x1c8]
fstp qword [0x85a3e0]
fld qword [ebx + 0x1d0]
fstp qword [0x85a3b0]
jmp 0x52a5ec
xor eax, eax
jmp 0x52ad69
xor eax, eax
jmp 0x52b158
mov eax, 1
mov edx, 1
jmp 0x52a62c
mov dword [esp], edi
call fcn.004fce10
cmp dword [0x859d98], eax
jle 0x52b521
mov dword [0x859d98], eax
mov dword [0x859d9c], 0
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x85a040], 0
mov dword [0x85a034], edx
mov dword [0x85a04c], eax
jmp 0x52af4e
mov dword [0x85a314], 0
mov dword [0x85a308], edx
mov dword [0x85a320], eax
jmp 0x52a84a
fld qword [ebx + 0x308]
jmp 0x52ac45
fld qword [ebx + 0x3f0]
jmp 0x52b011
mov dword [0x85a440], eax
mov ebp, 1
mov edi, 1
mov byte [esp + 0x37], 0
mov byte [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
jmp 0x52a5ec
cmp esi, 0xdc
sete dl
cmp dword [esp + 0x64], 3
sete cl
and cl, dl
mov ebp, ecx
je 0x52bb28
mov byte [esp + 0x20], cl
mov esi, 0xdc
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], 1
mov dword [0x85a440], eax
mov edi, 1
mov byte [esp + 0x37], 1
mov dword [esp + 0x30], 0
jmp 0x52b727
xor ecx, ecx
mov dword [esp + 0x28], ecx
cmp esi, 0x5e
jne 0x52a596
cmp dword [esp + 0x1c], 1
fld qword [ebx + 0x170]
mov dword [0x85a440], eax
mov ebp, 1
mov byte [esp + 0x37], 1
fld qword [ebx + 0x1a8]
mov edi, 7
mov byte [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
ja 0x52bac0
cmp dword [esp + 0x64], 4
jne 0x52bac0
fxch st(1)
fstp qword [0x85a428]
mov eax, dword [ebx + 0xc]
mov dword [0x85a444], 1
fldz
fst qword [0x85a3f8]
mov dword [0x85a43c], eax
fstp qword [0x85a418]
fstp qword [0x85a408]
fld qword [ebx + 0x1d8]
fstp qword [0x85a3b8]
fld qword [ebx + 0x1e0]
fstp qword [0x85a3d0]
fld qword [ebx + 0x1e8]
fstp qword [0x85a3c8]
fld qword [ebx + 0x1f0]
fstp qword [0x85a3c0]
jmp 0x52b801
mov ecx, dword [esp + 0x38]
mov dword [0x85a03c], ecx
cmp esi, 0x50
jne 0x52ae76
test eax, eax
sete al
movzx eax, al
jmp 0x52ae76
mov ecx, dword [esp + 0x38]
mov dword [0x85a310], ecx
cmp esi, 0x50
jne 0x52a77c
test eax, eax
sete al
movzx eax, al
jmp 0x52a77c
cmp esi, 0x50
jne 0x52af4e
fld qword [ebx + 0x3d0]
jmp 0x52af58
cmp esi, 0x50
jne 0x52a84a
fld qword [ebx + 0x2b8]
jmp 0x52a850
cmp esi, 0xf2
jne 0x52bba0
mov byte [esp + 0x20], 0
xor ebp, ebp
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jmp 0x52b944
fld qword [ebx + 0x180]
fld qword [ebx + 0x1b8]
fxch st(3)
mov eax, dword [ebx + 8]
jmp 0x52bad8
fxch st(3)
lea esi, [esi]
fstp qword [0x85a428]
fstp qword [0x85a418]
fstp qword [0x85a408]
mov dword [0x85a444], eax
mov dword [0x85a43c], 0
fstp qword [0x85a3f8]
jmp 0x52b801
fld qword [ebx + 0x308]
jmp 0x52ac51
fld qword [ebx + 0x3f0]
jmp 0x52b01d
cmp esi, 0x68
je 0x52bb35
test dl, dl
je 0x52bc1d
mov edi, dword [esp + 0x64]
xor ecx, ecx
lea edx, [edi - 1]
cmp edx, 1
setbe cl
mov dword [esp + 0x28], ecx
cmp esi, 0x38
jne 0x52b966
mov dword [0x85a440], eax
lea esi, [esi]
lea esi, [esi]
cmp esi, 0x50
mov eax, esi
mov ebp, 1
mov edi, 2
sete byte [esp + 0x20]
and eax, 0xfffffffb
cmp eax, 0x50
mov dword [esp + 0x2c], 0
setne dl
cmp esi, 0x21
mov dword [esp + 0x30], 0
setne al
and edx, eax
mov byte [esp + 0x37], dl
jmp 0x52b727
cmp esi, 0x20
setne cl
cmp esi, 0x38
setne dl
and cl, dl
mov byte [esp + 0x20], cl
jne 0x52b960
mov dword [0x85a440], eax
cmp esi, 0x20
je 0x52bbd0
mov dword [esp + 0x28], 0
jmp 0x52bb60
mov byte [esp + 0x37], 1
mov ebp, 1
mov edi, 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
jmp 0x52a5ec
cmp esi, 0x50
mov ebp, 1
mov edi, 1
sete byte [esp + 0x20]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
jmp 0x52b727
xor edx, edx
mov dword [esp + 0x28], edx
jmp 0x52bb48