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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x28], eax
call dword [sym.imp.libpcaewin.dll_CurOb_Application_Number]
mov edi, eax
sub eax, 0x72
cmp eax, 1
jbe 0x52c450
mov eax, dword [0x859378]
cmp edi, 0x23
je 0x52c410
cmp eax, 1
jle 0x52d470
cmp edi, 0x20
jne 0x52d380
mov esi, dword [ebx + 0x168]
mov dword [esp + 0x38], 1
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 2
test esi, esi
jne 0x52c47e
mov eax, dword [0x85a440]
fld qword [0x85a3e0]
mov dword [esp + 0x2c], 1
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
fstp qword [ebx + 0x1c8]
sub eax, 4
cmp eax, 1
ja 0x52c4bd
cmp dword [esp + 0x28], 4
jne 0x52d2f0
test esi, esi
je 0x52d3e0
test esi, 8
je 0x52bd66
fld qword [0x85a428]
fstp qword [ebx + 0x170]
fldz
fst qword [ebx + 0x180]
fst qword [ebx + 0x188]
fstp qword [ebx + 0x178]
test esi, 0x10
je 0x52bd9a
fld qword [0x85a408]
fstp qword [ebx + 0x1a8]
fldz
fst qword [ebx + 0x1b8]
fst qword [ebx + 0x1c0]
fstp qword [ebx + 0x1b0]
fld qword [0x85a3b0]
fstp qword [ebx + 0x1d0]
test esi, 4
jne 0x52d42a
lea esi, [esi]
lea esi, [esi]
test esi, 0x40
je 0x52bdd8
mov eax, dword [0x85a3ac]
mov dword [ebx + 0x10], eax
mov eax, dword [0x85a3a8]
mov dword [ebx + 0x14], eax
mov eax, dword [0x85a3a0]
mov dword [ebx + 0x18], eax
mov eax, dword [0x85a398]
mov dword [ebx + 0x34], eax
test esi, 0x80
je 0x52be1c
mov eax, dword [0x85a39c]
mov dword [ebx + 0x1c], eax
mov eax, dword [0x85a394]
mov dword [ebx + 0x20], eax
mov eax, dword [0x85a3a4]
mov dword [ebx + 0x28], eax
mov eax, dword [0x85a384]
mov dword [ebx + 0x30], eax
mov eax, dword [0x85a388]
mov dword [ebx + 0x2c], eax
mov eax, dword [0x85a390]
test eax, eax
jne 0x52d0c0
mov dword [ebx + 0x24], 0
test esi, 0x100
je 0x52bec9
mov eax, dword [0x85a380]
fld qword [0x85a330]
mov dword [ebx + 0x40], eax
mov eax, dword [0x85a370]
fstp qword [ebx + 0x228]
fld qword [0x85a360]
mov dword [ebx + 0x38], eax
mov eax, dword [0x85a374]
add eax, 1
fstp qword [ebx + 0x218]
fld qword [0x85a350]
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 0x28]
sub eax, 4
fstp qword [ebx + 0x1f8]
cmp eax, 1
jbe 0x52d110
fld qword [0x85a340]
fstp qword [ebx + 0x208]
fld qword [0x85a348]
fstp qword [ebx + 0x200]
fld qword [0x85a338]
fstp qword [ebx + 0x210]
mov eax, dword [0x85a37c]
mov ebp, dword [esp + 0x2c]
mov dword [ebx + 0x44], eax
mov eax, 3
test ebp, ebp
je 0x52bebe
mov edx, dword [0x85a32c]
test edx, edx
jne 0x52d1c0
mov dword [ebx + 0x48], eax
mov eax, dword [0x85a378]
mov dword [ebx + 0x50], eax
test esi, 0x200
je 0x52bee5
mov eax, dword [0x85a36c]
fld qword [0x85a358]
mov dword [ebx + 0x3c], eax
fstp qword [ebx + 0x220]
test esi, 0x800
je 0x52c0d7
mov eax, dword [0x85a308]
cmp edi, 0x5e
fld qword [0x85a258]
mov ebp, dword [0x85a328]
setne dl
cmp edi, 0x3a
mov dword [ebx + 0x74], eax
mov eax, dword [0x85a324]
mov dword [ebx + 0x54], ebp
mov dword [ebx + 0x58], eax
setne al
fstp qword [ebx + 0x230]
test dl, al
je 0x52bf2e
test cl, cl
jne 0x52d170
fld qword [0x788660]
fstp qword [ebx + 0x240]
fld qword [0x85a248]
mov eax, dword [0x85a310]
mov dword [ebx + 0x64], eax
mov eax, dword [0x85a2f8]
fstp qword [ebx + 0x570]
fld qword [0x85a218]
mov dword [ebx + 0x80], eax
mov eax, dword [0x85a2f4]
fstp qword [ebx + 0x560]
fld qword [0x85a210]
mov dword [ebx + 0x68], eax
mov eax, dword [0x859d80]
fstp qword [ebx + 0x568]
fld qword [0x85a228]
mov dword [0x859d70], eax
mov eax, dword [0x859d7c]
fstp qword [ebx + 0x2e0]
fld qword [0x85a1d0]
mov dword [0x859d6c], eax
mov eax, dword [esp + 0x1c]
fstp qword [ebx + 0x2e8]
fld qword [0x85a220]
fstp qword [ebx + 0x2f0]
mov dword [esp], eax
call fcn.004fce10
cmp ebp, eax
jne 0x52c00d
fld qword [0x85a0a8]
fstp qword [ebx + 0x238]
fld qword [0x85a0a0]
fchs
fstp qword [ebx + 0x248]
fld qword [0x85a098]
fchs
fstp qword [ebx + 0x250]
fld qword [0x85a090]
fstp qword [ebx + 0x258]
fld qword [0x85a088]
fstp qword [ebx + 0x260]
fld qword [0x85a080]
fstp qword [ebx + 0x268]
mov eax, dword [esp + 0x20]
mov ebp, dword [ebx + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004fd290
cmp ebp, eax
jne 0x52c058
fld qword [0x85a078]
fstp qword [ebx + 0x278]
fld qword [0x85a070]
fstp qword [ebx + 0x280]
fld qword [0x85a068]
fstp qword [ebx + 0x288]
fld qword [0x85a060]
fstp qword [ebx + 0x290]
mov ebp, dword [0x85a2b0]
test ebp, ebp
je 0x52d0f0
mov eax, dword [0x85a2ac]
mov ecx, dword [0x85a2a8]
xor edx, edx
add eax, 1
cmp ecx, 0xa
mov dword [ebx + 0x5ac], eax
lea eax, [ecx + 1]
mov ecx, dword [0x85a2a4]
cmove eax, edx
cmp ecx, 4
mov dword [ebx + 0x5b0], eax
lea eax, [ecx + 1]
cmove eax, edx
mov dword [ebx + 0x5b4], eax
mov eax, dword [0x85a2b8]
mov dword [ebx + 0x84], eax
mov eax, dword [0x85a2a0]
mov dword [ebx + 0x698], eax
mov eax, dword [0x85a29c]
mov dword [ebx + 0x69c], eax
mov eax, dword [0x85a298]
mov dword [ebx + 0x6a0], eax
mov eax, dword [0x85a288]
mov dword [ebx + 0x88], eax
test esi, 0x1000
je 0x52c2a9
mov eax, dword [0x85a318]
mov ecx, dword [0x85a30c]
mov dword [ebx + 0x60], eax
mov eax, dword [0x85a31c]
test ecx, ecx
setne dl
mov dword [ebx + 0x5c], eax
cmp edi, 0x50
jne 0x52c10e
test ecx, ecx
sete cl
sete dl
movzx ecx, cl
mov dword [ebx + 0x6c], ecx
mov ecx, dword [0x85a320]
test ecx, ecx
je 0x52d0e0
mov ecx, dword [0x85a27c]
fldz
fstp qword [ebx + 0x270]
fld qword [0x85a260]
mov ebp, dword [0x85a2f0]
mov dword [ebx + 0x128], ecx
mov ecx, dword [0x85a314]
fstp qword [ebx + 0x2c0]
fld qword [0x85a240]
mov dword [ebx + 0x70], ecx
mov ecx, dword [0x85a300]
fstp qword [ebx + 0x2c8]
fld qword [0x85a238]
mov dword [ebx + 0x7c], ecx
mov ecx, dword [0x85a2fc]
mov dword [ebx + 0x530], ecx
xor ecx, ecx
test ebp, ebp
mov ebp, dword [0x791fc8]
sete cl
fstp qword [ebx + 0x2d0]
fld qword [0x85a230]
add ebp, dword [0x791fcc]
mov dword [ebx + 0x534], ecx
mov ecx, dword [esp + 0x20]
fstp qword [ebx + 0x2d8]
test ecx, ecx
je 0x52c1b0
test dl, dl
jne 0x52d210
mov ecx, dword [esp + 0x38]
xor edx, edx
fld dword [0x788688]
test ecx, ecx
cmovne edx, dword [0x85a304]
mov dword [ebx + 0x78], edx
cmp edi, 0x50
jne 0x52c1d5
fstp st(0)
fld qword [0x85a270]
mov ecx, dword [esp + 0x1c]
fstp qword [ebx + 0x2b8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004fbab0
cmp eax, ebp
jg 0x52d4c0
mov eax, dword [ebx + 0x5c]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004fbab0
cmp eax, ebp
jne 0x52c23a
fld qword [ebx + 0x278]
fstp qword [ebx + 0x298]
fld qword [ebx + 0x280]
fstp qword [ebx + 0x2a0]
fld qword [ebx + 0x288]
fstp qword [ebx + 0x2a8]
fld qword [ebx + 0x290]
fstp qword [ebx + 0x2b0]
fld qword [0x7886c8]
fmul qword [0x85a1b8]
mov eax, dword [0x85a294]
mov dword [ebx + 0x6b0], eax
mov eax, dword [0x85a290]
fstp qword [ebx + 0x6d0]
fld qword [0x85a1b0]
mov dword [ebx + 0x6b4], eax
mov eax, dword [0x85a28c]
fstp qword [ebx + 0x6d8]
fld qword [0x85a198]
mov dword [ebx + 0x6b8], eax
mov eax, dword [0x85a280]
mov dword [ebx + 0x5fc], eax
mov eax, dword [0x85a058]
fstp qword [ebx + 0x638]
fldz
test eax, eax
je 0x52c2a3
fstp st(0)
fld qword [0x85a190]
fstp qword [ebx + 0x640]
test esi, 0x400000
je 0x52c647
mov edx, dword [0x85a2ec]
fld qword [0x788610]
fld qword [0x85a1e0]
mov dword [ebx + 0x580], edx
fnstcw word [esp + 0x3e]
fadd st(1)
movzx eax, word [esp + 0x3e]
or ah, 0xc
mov word [esp + 0x3c], ax
mov eax, dword [0x85a2cc]
fldcw word [esp + 0x3c]
fistp dword [ebx + 0x58c]
fldcw word [esp + 0x3e]
sub eax, 1
fadd qword [0x85a208]
fldcw word [esp + 0x3c]
fistp dword [ebx + 0x584]
fldcw word [esp + 0x3e]
mov dword [ebx + 0x59c], eax
mov eax, dword [0x85a2c8]
fld qword [0x85a200]
mov dword [ebx + 0x5a0], eax
mov eax, dword [0x85a2c0]
fstp qword [ebx + 0x608]
fldz
test eax, eax
je 0x52c33a
fstp st(0)
fld qword [0x85a1d8]
fstp qword [ebx + 0x628]
fld qword [0x85a1c8]
mov eax, dword [0x85a2e0]
fstp qword [ebx + 0x630]
fld qword [0x85a1f8]
fstp qword [ebx + 0x610]
fld qword [0x85a1a8]
fstp qword [ebx + 0x740]
fld qword [0x85a1f0]
fstp qword [ebx + 0x618]
fld qword [0x85a1e8]
fstp qword [ebx + 0x620]
fld qword [0x85a1a0]
fstp qword [ebx + 0x748]
test eax, eax
je 0x52c5d0
mov dword [ebx + 0x5a4], 0
mov eax, dword [esp + 0x28]
sub eax, 4
cmp eax, 1
jbe 0x52d248
mov ecx, dword [0x85a2dc]
xor eax, eax
mov ebp, dword [0x85a2d8]
test ecx, ecx
setne al
shl eax, 2
mov dword [ebx + 0x594], eax
test ebp, ebp
je 0x52c3d8
or eax, 8
mov dword [ebx + 0x594], eax
mov edx, dword [0x85a2d4]
test edx, edx
je 0x52c3eb
or eax, 1
mov dword [ebx + 0x594], eax
mov ebp, dword [0x85a2d0]
test ebp, ebp
je 0x52c5e4
or eax, 2
mov dword [ebx + 0x594], eax
jmp 0x52c5e4
mov dword [esp + 0x38], 0
mov edi, 0x21
cmp eax, 1
jle 0x52d260
cmp edi, 0x54
mov dword [esp + 0x2c], 1
sete al
cmp edi, 0x21
sete dl
or eax, edx
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x52d275
mov dword [esp + 0x38], 0
sub edi, 0xa
mov ecx, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 4
mov esi, dword [ebx + 0x168]
test esi, esi
je 0x52bcff
mov dword [esp + 0x2c], 1
xor eax, eax
test esi, 4
je 0x52c4a5
mov edx, dword [0x85a440]
fld qword [0x85a3e0]
mov dword [ebx + 4], edx
fstp qword [ebx + 0x1c8]
test al, al
jne 0x52bdb0
mov eax, dword [esp + 0x28]
sub eax, 4
cmp eax, 1
jbe 0x52bd2b
cmp edi, 0x69
sete dl
cmp edi, 0xf2
sete al
or al, dl
jne 0x52c4d9
cmp edi, 0x38
jne 0x52d2f0
test esi, esi
je 0x52d548
test esi, 8
je 0x52c519
fld qword [0x85a428]
fstp qword [ebx + 0x170]
fld qword [0x85a418]
fstp qword [ebx + 0x180]
fld qword [0x85a420]
fstp qword [ebx + 0x178]
fld qword [0x85a410]
fstp qword [ebx + 0x188]
test esi, 0x10
je 0x52c55d
fld qword [0x85a430]
fstp qword [ebx + 0x1b0]
fld qword [0x85a400]
fstp qword [ebx + 0x1c0]
fld qword [0x85a408]
fstp qword [ebx + 0x1a8]
fld qword [0x85a3f8]
fstp qword [ebx + 0x1b8]
fld qword [0x85a3b0]
fstp qword [ebx + 0x1d0]
test esi, 4
je 0x52bdb0
mov eax, dword [0x85a444]
fld qword [0x85a3f0]
mov dword [ebx + 8], eax
mov eax, dword [0x85a438]
fst qword [ebx + 0x198]
fldz
test eax, eax
je 0x52c598
fstp st(0)
fsubr qword [0x85a3e8]
jmp 0x52c59a
fstp st(1)
fstp qword [ebx + 0x1a0]
cmp edi, 0x38
jne 0x52c5b9
mov eax, dword [0x85a43c]
fld qword [0x85a3d8]
mov dword [ebx + 0xc], eax
fstp qword [ebx + 0x190]
test esi, esi
je 0x52d2ad
jmp 0x52bdb0
mov dword [ebx + 0x5a4], 1
mov dword [ebx + 0x594], 0xf
mov eax, dword [0x85a2c4]
fld qword [0x85a1c0]
sub eax, 1
mov dword [ebx + 0x5a8], eax
mov eax, dword [0x85a284]
fstp qword [ebx + 0x578]
fld qword [0x85a188]
mov dword [ebx + 0x8c], eax
mov eax, dword [0x85a2e8]
sub eax, 1
fstp qword [ebx + 0x648]
mov dword [ebx + 0x588], eax
mov eax, dword [0x85a2e4]
sub eax, 1
mov dword [ebx + 0x590], eax
mov eax, dword [0x85a2bc]
mov dword [ebx + 0x598], eax
mov eax, dword [0x85a2b4]
mov dword [ebx + 0x5f4], eax
test esi, 0x2000
je 0x52c69d
fld qword [0x85a148]
mov eax, dword [0x85a184]
mov dword [ebx + 0x94], eax
fstp qword [ebx + 0x2f8]
fld qword [0x85a0e8]
fstp qword [ebx + 0x300]
fld qword [0x788610]
fadd qword [0x85a108]
fnstcw word [esp + 0x3e]
movzx eax, word [esp + 0x3e]
or ah, 0xc
mov word [esp + 0x3c], ax
fldcw word [esp + 0x3c]
fistp dword [ebx + 0xa0]
fldcw word [esp + 0x3e]
test esi, 0x4000
je 0x52c7ba
fld qword [0x85a0f0]
mov eax, dword [0x85a174]
mov dword [ebx + 0x90], eax
mov eax, dword [0x85a168]
fstp qword [ebx + 0x320]
fld qword [0x85a0b0]
mov dword [ebx + 0xac], eax
mov eax, dword [esp + 0x28]
fstp qword [ebx + 0x468]
fld qword [0x85a130]
sub eax, 4
fstp qword [ebx + 0x318]
fld qword [0x85a0e0]
fstp qword [ebx + 0x550]
fld qword [0x85a128]
fstp qword [ebx + 0x328]
cmp eax, 1
jbe 0x52d130
fld qword [0x85a118]
fstp qword [ebx + 0x338]
fld qword [0x85a120]
fstp qword [ebx + 0x330]
fld qword [0x85a110]
fstp qword [ebx + 0x340]
mov eax, dword [0x85a178]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0xa4], eax
mov eax, 3
test ecx, ecx
je 0x52c755
mov edx, dword [0x85a05c]
test edx, edx
jne 0x52d1f0
mov dword [ebx + 0xa8], eax
mov eax, dword [0x85a164]
mov dword [ebx + 0xb4], eax
mov eax, dword [0x85a17c]
test eax, eax
je 0x52d100
cmp eax, 1
mov edx, 4
cmove eax, edx
mov dword [ebx + 0x540], eax
mov eax, dword [0x85a160]
mov dword [ebx + 0xb8], 0xffffffff
mov dword [ebx + 0x548], eax
mov eax, dword [0x85a154]
mov dword [ebx + 0xbc], eax
mov eax, dword [0x85a278]
mov dword [ebx + 0x130], eax
mov eax, dword [0x85a150]
mov dword [ebx + 0x138], eax
test esi, 0x8000
je 0x52c86c
mov eax, dword [0x85a180]
mov dword [ebx + 0x98], eax
mov eax, dword [0x85a170]
mov dword [ebx + 0xb0], eax
cmp eax, 1
je 0x52d600
fld qword [0x85a140]
fst qword [ebx + 0x308]
fld qword [0x85a138]
fstp qword [ebx + 0x310]
mov eax, dword [esp + 0x1c]
fstp qword [esp + 0x30]
fld qword [0x85a0a8]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a328]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.004fe780
fld qword [esp + 0x30]
cmp dword [0x85a170], 1
fdivrp st(1)
fstp qword [ebx + 0x760]
je 0x52d3c0
mov eax, dword [esp + 0x1c]
fld qword [0x85a138]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a324]
fstp qword [esp + 0x30]
fld qword [0x85a078]
mov dword [esp], eax
fstp qword [esp + 4]
call fcn.004fe7e0
fdivr qword [esp + 0x30]
fstp qword [ebx + 0x768]
test esi, 0x1000000
je 0x52c8c6
fld qword [0x85a0d8]
mov eax, dword [0x85a15c]
mov dword [ebx + 0x9c], eax
mov eax, dword [0x85a158]
fstp qword [ebx + 0x6f0]
fld qword [0x85a0d0]
mov dword [ebx + 0x6c8], eax
fstp qword [ebx + 0x6f8]
fld qword [0x85a0c8]
fstp qword [ebx + 0x710]
fld qword [0x85a0c0]
fstp qword [ebx + 0x718]
fld qword [0x85a0b8]
fstp qword [ebx + 0x720]
test esi, 0x20000
jne 0x52cf18
test esi, 0x40000
je 0x52cac1
mov eax, dword [0x85a044]
mov ecx, dword [0x85a038]
mov dword [ebx + 0xcc], eax
mov eax, dword [0x85a048]
test ecx, ecx
setne dl
mov dword [ebx + 0xc8], eax
cmp edi, 0x50
jne 0x52c90f
test ecx, ecx
sete cl
sete dl
movzx ecx, cl
mov dword [ebx + 0xd8], ecx
mov ecx, dword [0x85a04c]
test ecx, ecx
jne 0x52d0b0
fld qword [0x859f88]
mov dword [ebx + 0x12c], ecx
mov ecx, dword [0x859fa8]
fstp qword [ebx + 0x388]
fld qword [0x859f98]
mov ebp, dword [0x85a024]
mov dword [ebx + 0x134], ecx
mov ecx, dword [0x85a040]
fstp qword [ebx + 0x3d8]
fld qword [0x859f78]
mov dword [ebx + 0xdc], ecx
mov ecx, dword [0x85a02c]
fstp qword [ebx + 0x448]
fld qword [0x859f70]
mov dword [ebx + 0xe8], ecx
mov ecx, dword [0x85a028]
mov dword [ebx + 0x538], ecx
xor ecx, ecx
test ebp, ebp
mov ebp, dword [0x791fc8]
sete cl
fstp qword [ebx + 0x450]
fld qword [0x859f80]
add ebp, dword [0x791fcc]
mov dword [ebx + 0x53c], ecx
mov ecx, dword [esp + 0x20]
fstp qword [ebx + 0x460]
test ecx, ecx
je 0x52c9c4
test dl, dl
jne 0x52d1d0
mov edx, dword [esp + 0x38]
fld dword [0x788688]
test edx, edx
cmovne edx, dword [0x85a030]
mov dword [ebx + 0xe4], edx
cmp edi, 0x50
jne 0x52c9ea
fstp st(0)
fld qword [0x859fa0]
mov edi, dword [esp + 0x1c]
fstp qword [ebx + 0x3d0]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004fbab0
cmp eax, ebp
jg 0x52d4a0
mov eax, dword [ebx + 0xc8]
mov edi, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004fbab0
cmp eax, ebp
jne 0x52ca52
fld qword [ebx + 0x390]
fstp qword [ebx + 0x3b0]
fld qword [ebx + 0x398]
fstp qword [ebx + 0x3b8]
fld qword [ebx + 0x3a0]
fstp qword [ebx + 0x3c0]
fld qword [ebx + 0x3a8]
fstp qword [ebx + 0x3c8]
fld qword [0x7886c8]
fmul qword [0x859e30]
mov eax, dword [0x859fc0]
mov dword [ebx + 0x6bc], eax
mov eax, dword [0x859fbc]
fstp qword [ebx + 0x6e0]
fld qword [0x859e28]
mov dword [ebx + 0x6c0], eax
mov eax, dword [0x859fb8]
fstp qword [ebx + 0x6e8]
fld qword [0x859f18]
mov dword [ebx + 0x6c4], eax
mov eax, dword [0x859fac]
mov dword [ebx + 0x600], eax
mov eax, dword [0x859da0]
fstp qword [ebx + 0x680]
fldz
test eax, eax
je 0x52cabb
fstp st(0)
fld qword [0x859f10]
fstp qword [ebx + 0x688]
test esi, 0x800000
je 0x52cc8f
mov edx, dword [0x85a018]
fld qword [0x788610]
fld qword [0x859f40]
mov dword [ebx + 0x5b8], edx
fnstcw word [esp + 0x3e]
fadd st(1)
movzx eax, word [esp + 0x3e]
or ah, 0xc
mov word [esp + 0x3c], ax
mov eax, dword [0x859ff8]
fldcw word [esp + 0x3c]
fistp dword [ebx + 0x5c4]
fldcw word [esp + 0x3e]
sub eax, 1
fadd qword [0x859f68]
fldcw word [esp + 0x3c]
fistp dword [ebx + 0x5bc]
fldcw word [esp + 0x3e]
mov dword [ebx + 0x5d4], eax
mov eax, dword [0x859ff4]
fld qword [0x859f60]
mov dword [ebx + 0x5d8], eax
mov eax, dword [0x859fec]
fstp qword [ebx + 0x650]
fldz
test eax, eax
je 0x52cb52
fstp st(0)
fld qword [0x859f38]
fstp qword [ebx + 0x670]
fld qword [0x859f30]
mov ebp, dword [0x85a00c]
fstp qword [ebx + 0x678]
fld qword [0x859f58]
fstp qword [ebx + 0x658]
fld qword [0x859f28]
fstp qword [ebx + 0x750]
fld qword [0x859f50]
fstp qword [ebx + 0x660]
fld qword [0x859f48]
fstp qword [ebx + 0x668]
fld qword [0x859f20]
fstp qword [ebx + 0x758]
test ebp, ebp
je 0x52cc18
mov dword [ebx + 0x5dc], 0
mov eax, dword [esp + 0x28]
sub eax, 4
cmp eax, 1
jbe 0x52d230
mov ecx, dword [0x85a008]
xor eax, eax
mov edi, dword [0x85a004]
test ecx, ecx
setne al
shl eax, 2
mov dword [ebx + 0x5cc], eax
test edi, edi
je 0x52cbed
or eax, 8
mov dword [ebx + 0x5cc], eax
mov edx, dword [0x85a000]
test edx, edx
je 0x52cc00
or eax, 1
mov dword [ebx + 0x5cc], eax
mov ebp, dword [0x859ffc]
test ebp, ebp
je 0x52cc2c
or eax, 2
mov dword [ebx + 0x5cc], eax
jmp 0x52cc2c
mov dword [ebx + 0x5dc], 1
mov dword [ebx + 0x5cc], 0xf
mov eax, dword [0x859ff0]
fld qword [0x859e38]
sub eax, 1
mov dword [ebx + 0x5e0], eax
mov eax, dword [0x859fb0]
fstp qword [ebx + 0x458]
fld qword [0x859f08]
mov dword [ebx + 0x124], eax
mov eax, dword [0x85a014]
sub eax, 1
fstp qword [ebx + 0x690]
mov dword [ebx + 0x5c0], eax
mov eax, dword [0x85a010]
sub eax, 1
mov dword [ebx + 0x5c8], eax
mov eax, dword [0x859fe8]
mov dword [ebx + 0x5f0], eax
mov eax, dword [0x859fe0]
mov dword [ebx + 0x5f8], eax
test esi, 0x80000
je 0x52cce5
fld qword [0x859ec0]
mov eax, dword [0x859f00]
mov dword [ebx + 0xf4], eax
fstp qword [ebx + 0x3e0]
fld qword [0x859e48]
fstp qword [ebx + 0x3e8]
fld qword [0x788610]
fadd qword [0x859e80]
fnstcw word [esp + 0x3e]
movzx eax, word [esp + 0x3e]
or ah, 0xc
mov word [esp + 0x3c], ax
fldcw word [esp + 0x3c]
fistp dword [ebx + 0x104]
fldcw word [esp + 0x3e]
test esi, 0x100000
je 0x52cded
fld qword [0x859e68]
mov eax, dword [0x859ef0]
mov dword [ebx + 0xf0], eax
mov eax, dword [0x859ee4]
fstp qword [ebx + 0x408]
fld qword [0x859df8]
mov dword [ebx + 0x10c], eax
mov eax, dword [esp + 0x28]
fstp qword [ebx + 0x470]
fld qword [0x859ea8]
sub eax, 4
fstp qword [ebx + 0x400]
fld qword [0x859e40]
fstp qword [ebx + 0x558]
fld qword [0x859ea0]
fstp qword [ebx + 0x428]
cmp eax, 1
jbe 0x52d150
fld qword [0x859e90]
fstp qword [ebx + 0x438]
fld qword [0x859e98]
fstp qword [ebx + 0x430]
fld qword [0x859e88]
fstp qword [ebx + 0x440]
mov eax, dword [0x859ef4]
mov edi, dword [esp + 0x2c]
mov dword [ebx + 0x100], eax
mov eax, 3
test edi, edi
je 0x52cd9d
mov ecx, dword [0x859da4]
test ecx, ecx
jne 0x52d200
mov dword [ebx + 0x108], eax
mov eax, dword [0x859ee0]
mov dword [ebx + 0x114], eax
mov eax, dword [0x859ef8]
test eax, eax
je 0x52d0a0
cmp eax, 1
mov edx, 4
cmove eax, edx
mov dword [ebx + 0x544], eax
mov eax, dword [0x859ed0]
mov dword [ebx + 0x5d0], eax
mov eax, dword [0x859ecc]
mov dword [ebx + 0x11c], eax
mov eax, dword [0x859ec8]
mov dword [ebx + 0x13c], eax
test esi, 0x200000
je 0x52ce9f
mov eax, dword [0x859efc]
mov dword [ebx + 0xf8], eax
mov eax, dword [0x859eec]
mov dword [ebx + 0x110], eax
cmp eax, 1
je 0x52d5c0
fld qword [0x859eb8]
fst qword [ebx + 0x3f0]
fld qword [0x859eb0]
fstp qword [ebx + 0x3f8]
mov eax, dword [esp + 0x1c]
fstp qword [esp + 0x20]
fld qword [0x859df0]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a054]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.004fe780
fld qword [esp + 0x20]
cmp dword [0x859eec], 1
fdivrp st(1)
fstp qword [ebx + 0x770]
je 0x52d3d0
mov eax, dword [esp + 0x1c]
fld qword [0x859eb0]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a050]
fstp qword [esp + 0x20]
fld qword [0x859dd0]
mov dword [esp], eax
fstp qword [esp + 4]
call fcn.004fe7e0
fdivr qword [esp + 0x20]
fstp qword [ebx + 0x778]
and esi, 0x2000000
je 0x52cef9
fld qword [0x859e20]
mov eax, dword [0x859ed8]
mov dword [ebx + 0xfc], eax
mov eax, dword [0x859ed4]
fstp qword [ebx + 0x700]
fld qword [0x859e18]
mov dword [ebx + 0x6cc], eax
fstp qword [ebx + 0x708]
fld qword [0x859e10]
fstp qword [ebx + 0x728]
fld qword [0x859e08]
fstp qword [ebx + 0x730]
fld qword [0x859e00]
fstp qword [ebx + 0x738]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], eax
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.005252d0
mov eax, dword [0x85a034]
fld qword [0x859f90]
mov ebp, dword [0x85a054]
mov dword [ebx + 0xe0], eax
mov eax, dword [0x85a050]
fstp qword [ebx + 0x348]
fld qword [0x859e60]
mov dword [ebx + 0xc4], eax
mov eax, dword [0x85a03c]
mov dword [ebx + 0xc0], ebp
mov dword [ebx + 0xd0], eax
mov eax, dword [0x859edc]
fstp qword [ebx + 0x410]
fld qword [0x859e58]
mov dword [ebx + 0xd4], eax
mov eax, dword [0x859d78]
mov dword [0x859d68], eax
mov eax, dword [0x859d74]
fstp qword [ebx + 0x418]
fld qword [0x859e50]
mov dword [0x859d64], eax
mov eax, dword [esp + 0x1c]
fstp qword [ebx + 0x420]
mov dword [esp], eax
call fcn.004fce10
cmp ebp, eax
jne 0x52cff0
fld qword [0x859df0]
fstp qword [ebx + 0x350]
fld qword [0x859de8]
fchs
fstp qword [ebx + 0x360]
fld qword [0x859de0]
fchs
fstp qword [ebx + 0x368]
fld qword [0x859dd8]
fstp qword [ebx + 0x370]
fld qword [0x859db0]
fstp qword [ebx + 0x378]
fld qword [0x859da8]
fstp qword [ebx + 0x380]
mov eax, dword [esp + 0x20]
mov ebp, dword [ebx + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004fd290
cmp ebp, eax
jne 0x52d03e
fld qword [0x859dd0]
fstp qword [ebx + 0x390]
fld qword [0x859dc8]
fstp qword [ebx + 0x398]
fld qword [0x859dc0]
fstp qword [ebx + 0x3a0]
fld qword [0x859db8]
fstp qword [ebx + 0x3a8]
mov eax, dword [0x85a020]
mov ebp, dword [0x859fdc]
mov dword [ebx + 0xec], eax
test ebp, ebp
jne 0x52d180
mov dword [ebx + 0x5e4], 0
mov eax, dword [0x859fe4]
mov dword [ebx + 0x118], eax
mov eax, dword [0x859fcc]
mov dword [ebx + 0x6a4], eax
mov eax, dword [0x859fc8]
mov dword [ebx + 0x6a8], eax
mov eax, dword [0x859fc4]
mov dword [ebx + 0x6ac], eax
mov eax, dword [0x859fb4]
mov dword [ebx + 0x120], eax
jmp 0x52c8d2
mov eax, 1
jmp 0x52cdc6
mov ecx, dword [0x85a01c]
fldz
jmp 0x52c929
xor eax, eax
cmp dword [0x85a38c], 2
setne al
add eax, 1
mov dword [ebx + 0x24], eax
jmp 0x52be1c
fld qword [0x85a250]
jmp 0x52c127
mov dword [ebx + 0x5ac], 0
jmp 0x52c0a0
mov eax, 1
jmp 0x52c77e
fldz
fst qword [ebx + 0x210]
fst qword [ebx + 0x200]
fstp qword [ebx + 0x208]
jmp 0x52be9b
fldz
fst qword [ebx + 0x340]
fst qword [ebx + 0x330]
fstp qword [ebx + 0x338]
jmp 0x52c72f
fldz
fst qword [ebx + 0x440]
fst qword [ebx + 0x430]
fstp qword [ebx + 0x438]
jmp 0x52cd77
fld qword [0x85a268]
jmp 0x52bf34
mov eax, dword [0x859fd8]
mov ecx, dword [0x859fd4]
xor edx, edx
add eax, 1
cmp ecx, 0xa
mov dword [ebx + 0x5e4], eax
lea eax, [ecx + 1]
mov ecx, dword [0x859fd0]
cmove eax, edx
cmp ecx, 4
mov dword [ebx + 0x5e8], eax
lea eax, [ecx + 1]
cmove eax, edx
mov dword [ebx + 0x5ec], eax
jmp 0x52d061
mov eax, dword [0x85a368]
jmp 0x52bebe
fld qword [0x859fa0]
mov edx, dword [0x85a030]
mov dword [ebx + 0xe4], edx
fstp qword [ebx + 0x3d0]
jmp 0x52ca0e
mov eax, dword [0x85a16c]
jmp 0x52c755
mov eax, dword [0x859ee8]
jmp 0x52cd9d
fld qword [0x85a270]
mov edx, dword [0x85a304]
mov dword [ebx + 0x78], edx
fstp qword [ebx + 0x2b8]
jmp 0x52c1f6
neg edx
sbb edx, edx
and edx, 0xf
mov dword [ebx + 0x5cc], edx
jmp 0x52cc2c
neg edx
sbb edx, edx
and edx, 0xf
mov dword [ebx + 0x594], edx
jmp 0x52c5e4
mov dword [esp + 0x20], 0
mov eax, 1
mov dword [esp + 0x2c], 1
mov dword [esp + 0x1c], 1
mov ecx, 1
mov esi, dword [ebx + 0x168]
test esi, esi
jne 0x52c488
fld qword [0x85a3e0]
mov edx, dword [0x85a440]
mov dword [ebx + 4], edx
fstp qword [ebx + 0x1c8]
test al, al
je 0x52c4ad
mov edx, dword [0x755714]
mov eax, edx
and eax, 2
cmp eax, 1
sbb esi, esi
and esi, 0xfffffc40
add esi, 0x140fbde
cmp eax, 1
sbb eax, eax
and eax, 0xfffffc40
add eax, 0x3de
test dl, 4
cmove esi, eax
mov eax, esi
or eax, 0x2be0000
and edx, 0x10
cmovne esi, eax
jmp 0x52bdb0
test esi, esi
je 0x52d4e0
test esi, 8
je 0x52d326
fld qword [0x85a428]
fstp qword [ebx + 0x170]
fld qword [0x85a418]
fstp qword [ebx + 0x180]
fldz
fst qword [ebx + 0x188]
fstp qword [ebx + 0x178]
test esi, 0x10
je 0x52d360
fld qword [0x85a408]
fstp qword [ebx + 0x1a8]
fld qword [0x85a3f8]
fstp qword [ebx + 0x1b8]
fldz
fst qword [ebx + 0x1c0]
fstp qword [ebx + 0x1b0]
fld qword [0x85a3b0]
fstp qword [ebx + 0x1d0]
test esi, 4
je 0x52bdb0
mov eax, dword [0x85a444]
mov dword [ebx + 8], eax
jmp 0x52bdb0
cmp edi, 0xdc
sete al
cmp dword [esp + 0x28], 3
jne 0x52d6e0
test al, al
je 0x52d6e0
mov dword [esp + 0x38], 1
xor eax, eax
mov edi, 0xdc
mov dword [esp + 0x20], 1
mov dword [esp + 0x2c], 1
jmp 0x52d275
fld qword [0x85a0f8]
jmp 0x52c866
fld qword [0x859e70]
jmp 0x52ce99
fld qword [0x85a428]
fstp qword [ebx + 0x170]
fldz
fst qword [ebx + 0x180]
fst qword [ebx + 0x188]
fst qword [ebx + 0x178]
fld qword [0x85a408]
fstp qword [ebx + 0x1a8]
fst qword [ebx + 0x1b8]
fst qword [ebx + 0x1c0]
fstp qword [ebx + 0x1b0]
fld qword [0x85a3b0]
fstp qword [ebx + 0x1d0]
fld qword [0x85a3b8]
mov eax, dword [0x85a43c]
mov dword [ebx + 8], 1
mov dword [ebx + 0xc], eax
fstp qword [ebx + 0x1d8]
fld qword [0x85a3d0]
fstp qword [ebx + 0x1e0]
fld qword [0x85a3c8]
fstp qword [ebx + 0x1e8]
fld qword [0x85a3c0]
fstp qword [ebx + 0x1f0]
jmp 0x52c5b9
cmp edi, 0xf2
jne 0x52d740
mov dword [esp + 0x38], 0
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
jmp 0x52d275
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.004fbf80
mov dword [ebx + 0xc8], eax
jmp 0x52ca0e
mov eax, dword [esp + 0x1c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.004fbf80
mov dword [ebx + 0x5c], eax
jmp 0x52c1f6
fld qword [0x85a428]
mov eax, dword [0x85a444]
mov dword [ebx + 8], eax
fstp qword [ebx + 0x170]
fld qword [0x85a418]
fstp qword [ebx + 0x180]
fldz
fst qword [ebx + 0x188]
fst qword [ebx + 0x178]
fld qword [0x85a408]
fstp qword [ebx + 0x1a8]
fld qword [0x85a3f8]
fstp qword [ebx + 0x1b8]
fst qword [ebx + 0x1c0]
fstp qword [ebx + 0x1b0]
fld qword [0x85a3b0]
fstp qword [ebx + 0x1d0]
jmp 0x52d2ad
fld qword [0x85a428]
fstp qword [ebx + 0x170]
fld qword [0x85a418]
fstp qword [ebx + 0x180]
fld qword [0x85a420]
fstp qword [ebx + 0x178]
fld qword [0x85a410]
fstp qword [ebx + 0x188]
fld qword [0x85a430]
fstp qword [ebx + 0x1b0]
fld qword [0x85a400]
fstp qword [ebx + 0x1c0]
fld qword [0x85a408]
fstp qword [ebx + 0x1a8]
fld qword [0x85a3f8]
fstp qword [ebx + 0x1b8]
fld qword [0x85a3b0]
fstp qword [ebx + 0x1d0]
jmp 0x52c569
mov eax, dword [esp + 0x1c]
fld qword [0x859df0]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a054]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.004fe780
fmul qword [0x859e78]
cmp dword [0x859eec], 1
fstp qword [ebx + 0x3f0]
je 0x52d640
fld qword [0x859eb8]
jmp 0x52ce24
mov eax, dword [esp + 0x1c]
fld qword [0x85a0a8]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a328]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.004fe780
fmul qword [0x85a100]
cmp dword [0x85a170], 1
fstp qword [ebx + 0x308]
je 0x52d690
fld qword [0x85a140]
jmp 0x52c7f1
mov eax, dword [esp + 0x1c]
fld qword [0x859dd0]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a050]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.004fe7e0
cmp dword [0x859eec], 1
fld qword [0x859e70]
fmul st(1), st(0)
fxch st(1)
fstp qword [ebx + 0x3f8]
jne 0x52d770
fld qword [0x859e78]
fstp qword [ebx + 0x770]
jmp 0x52ce99
mov eax, dword [esp + 0x1c]
fld qword [0x85a078]
mov dword [esp + 0xc], eax
mov eax, dword [0x85a324]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.004fe7e0
cmp dword [0x85a170], 1
fld qword [0x85a0f8]
fmul st(1), st(0)
fxch st(1)
fstp qword [ebx + 0x310]
jne 0x52d760
fld qword [0x85a100]
fstp qword [ebx + 0x760]
jmp 0x52c866
cmp edi, 0x68
sete cl
cmp edi, 0x38
setne dl
or cl, al
je 0x52d79d
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, 1
setbe al
movzx eax, al
mov dword [esp + 0x38], eax
test dl, dl
jne 0x52d77d
cmp edi, 0x21
mov dword [esp + 0x20], 0
sete al
cmp edi, 0x54
mov dword [esp + 0x2c], 1
sete dl
mov dword [esp + 0x1c], 2
or eax, edx
jmp 0x52d282
cmp edi, 0x20
mov dword [esp + 0x38], 0
setne cl
cmp edi, 0x38
setne dl
and edx, ecx
jmp 0x52d708
fstp st(0)
fld qword [0x85a140]
jmp 0x52c7fd
fstp st(0)
fld qword [0x859eb8]
jmp 0x52ce30
cmp edi, 0x5e
jne 0x52c426
mov dword [esp + 0x20], 0
mov ecx, edx
mov dword [esp + 0x1c], 7
jmp 0x52c470
xor eax, eax
mov ecx, 1
mov dword [esp + 0x38], eax
jmp 0x52d708