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

Disassembly:
mov eax, dword [esi + 0x81c]
jmp 0x52869c
pushfd
mov eax, dword [0x156075c]
not eax
xor eax, dword [fcn.00463561]
mov eax, dword [eax]
popfd
jmp 0x52a012
push ebp
pushfd
mov ebp, dword [0x1560774]
add ebp, dword [0x6fba21]
popfd
xchg dword [esp], ebp
jmp 0x52913d
imul edx, edx, 0x238
jmp 0x52b505
sub esp, 0xb4
push ebx
push ebp
push esi
mov esi, ecx
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
movsx ecx, word [eax + esi + 0x180]
add eax, esi
mov dword [esp + 0x90], ecx
mov byte [esi + 0x2e], 0
mov byte [esi + 0x2f], 0
mov byte [esi + 0x37], 0
mov byte [esi + 0x36], 0
mov byte [esi + 0x28], 0
mov byte [esi + 0x35], 0
mov byte [esi + 0x22], 0
mov byte [esi + 0x20], 0
mov ecx, dword [eax + 0x390]
test ecx, ecx
push edi
mov byte [esp + 0x10], 0
mov byte [esp + 0x11], 0
mov byte [0xb6ec34], 0
jne 0x52802d
mov ecx, dword [esi + 0x958]
test ecx, ecx
lea eax, [esi + 0x958]
jne 0x52802d
movzx edx, byte [0xb7cd74]
imul edx, edx, 0x190
mov ecx, dword [edx + 0xb7cd98]
push eax
mov dword [eax], ecx
call fcn.00571b70
mov edi, dword [esi + 0xac]
mov eax, dword [esi + 0xa8]
inc edi
mov ecx, edi
cmp ecx, eax
mov dword [esi + 0xac], edi
jle 0x528050
mov dword [esi + 0xac], 1
cmp dword [esi + 0xac], eax
jne 0x52805e
mov byte [esi + 0x1e], 1
jmp 0x528062
mov byte [esi + 0x1e], 0
cmp byte [esi + 0x1e], 1
jne 0x528075
call fcn.0072dd20
test al, al
setne al
mov byte [esi + 0x54], al
cmp byte [esi + 0x2b], 1
jne 0x5280a1
push 0
call fcn.0053fb70
and byte [eax + 0x10e], 0xfe
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x1c]
add eax, 0x1c
add esp, 8
or ecx, 0x80
mov dword [eax], ecx
mov al, byte [0xb7cb49]
test al, al
mov ebp, 0x12
mov ebx, 2
mov edi, 6
jne 0x529ffb
mov al, byte [0xb7cb48]
test al, al
jne 0x529ffb
mov al, byte [esi + 0x21]
test al, al
jne 0x529ffb
cmp byte [esi + 0x34], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
jne 0x52811c
mov eax, dword [esi + 0x958]
mov cl, byte [eax + 0x36]
and cl, 7
cmp cl, bl
jne 0x528103
cmp dword [eax + 0x590], edi
je 0x52811c
mov ecx, esi
call fcn.0050b930
cmp byte [esi + 0x3d], 1
sete dl
mov byte [esi + 0x35], 1
mov byte [esi + 0x34], 0
mov byte [esi + 0x3c], dl
mov ecx, dword [esi + 0x958]
mov al, byte [ecx + 0x36]
and al, 7
cmp al, 2
jne 0x528d11
mov eax, dword [0x8cc824]
test eax, eax
jle 0x528148
mov word [0xb70140], ax
mov dword [0x8cc824], 0xffffffff
cmp dword [ecx + 0x590], edi
jne 0x528160
mov di, 3
mov word [0xb70140], di
jmp 0x52a002
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404a0
test al, al
jne 0x52818e
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404f0
test al, al
je 0x528266
cmp byte [0xa43088], 1
je 0x528266
mov al, byte [esi + 0x3d]
test al, al
jne 0x528266
mov al, byte [esi + 0x54]
test al, al
jne 0x52826d
cmp byte [esi + 0x2b], 1
je 0x5281c3
cmp dword [esi + 0xb0], ebx
jne 0x528266
call fcn.00441390
test al, al
jne 0x528266
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404a0
test al, al
mov eax, dword [esi + 0xb4]
je 0x5281ee
dec eax
jmp 0x5281ef
inc eax
cmp eax, 5
mov dword [esi + 0xb4], eax
jle 0x528206
mov dword [esi + 0xb4], 0
jmp 0x528214
test eax, eax
jge 0x528214
mov dword [esi + 0xb4], 5
mov eax, dword [esi + 0xb4]
cmp eax, 4
jne 0x52823c
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404a0
neg al
sbb eax, eax
and eax, 0xfffffffe
add eax, 5
jmp 0x528260
test eax, eax
jne 0x528266
mov al, byte [esi + 0x45]
test al, al
je 0x528266
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404a0
neg al
sbb eax, eax
and eax, 4
inc eax
mov dword [esi + 0xb4], eax
mov al, byte [esi + 0x54]
test al, al
je 0x528283
mov eax, dword [esi + 0xb4]
cmp eax, 4
je 0x528283
test eax, eax
je 0x528283
mov word [0xb70140], bp
mov ecx, dword [esi + 0x958]
mov eax, dword [ecx + 0x590]
cmp eax, 5
jne 0x5282d8
cmp word [ecx + 0x22], 0x1cc
jne 0x5282e6
xor eax, eax
xor edi, edi
cmp eax, 9
mov dword [esp + 0x4c], edi
jne 0x5282c6
call fcn.0072dd30
test al, al
je 0x5282c6
call fcn.0072dad0
mov edi, eax
test edi, edi
mov dword [esp + 0x4c], edi
je 0x5282c6
mov byte [esp + 0x11], 1
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x5282f4
lea eax, [ecx + 0x30]
jmp 0x5282f7
test eax, eax
je 0x52829e
cmp eax, 9
je 0x52829e
jmp 0x528ac6
mov word [0xb70140], 0x16
jmp 0x528ac6
add eax, 4
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.00449ba0
add esp, 0xc
test al, al
jne 0x528338
mov al, byte [esp + 0x11]
test al, al
jne 0x528338
mov al, byte [esi + 0x26]
test al, al
je 0x52832f
mov byte [esi + 0x28], 1
mov byte [esi + 0x26], 0
mov byte [esi + 0x4e], 0
jmp 0x528abf
mov al, byte [esi + 0x4e]
test al, al
jne 0x528345
cmp byte [esi + 0x2b], 1
je 0x528351
cmp dword [esi + 0xb0], ebx
jne 0x528a6e
mov ecx, dword [esi + 0x81c]
test ecx, ecx
jne 0x528363
test edi, edi
je 0x528a6e
mov edx, dword [esi + 0x958]
mov eax, dword [edx + 0x14]
test eax, eax
je 0x528375
add eax, 0x30
jmp 0x528378
lea eax, [edx + 4]
test ecx, ecx
je 0x528445
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x78]
push eax
call fcn.00449ff0
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x5283e1
mov eax, dword [ecx + 0x14]
test eax, eax
mov edi, 1
lea edx, [eax + 0x30]
jne 0x5283a9
lea edx, [ecx + 4]
test eax, eax
mov edx, dword [edx]
mov dword [esp + 0x30], edx
je 0x5283ca
add eax, 0x30
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
jmp 0x528696
lea eax, [ecx + 4]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
jmp 0x528696
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5283f0
mov edi, ebx
jmp 0x528696
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
mov edi, 1
je 0x528407
add ecx, 0x30
jmp 0x52840a
lea ecx, [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x52842e
mov edx, dword [ecx + 0x34]
lea eax, [ecx + 0x30]
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], 0
jmp 0x528696
mov edx, dword [eax + 8]
add eax, 4
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], 0
jmp 0x528696
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea ecx, [ecx + esi + 0x310]
mov ebx, dword [ecx]
mov dword [esp + 0x30], ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 4]
fld dword [esp + 0x50]
mov dword [esp + 0x54], ecx
fsub dword [esp + 0x30]
mov dword [esp + 0x34], ebx
fld dword [esp + 0x54]
mov eax, dword [eax + 8]
fsub dword [esp + 0x34]
mov dword [esp + 0x58], eax
fld st(0)
mov edi, 1
fmul st(1)
mov dword [esp + 0x5c], edi
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x858b48]
fnstsw ax
test ah, 0x41
jne 0x528696
mov eax, dword [edx + 0x14]
test eax, eax
je 0x5284c4
lea edx, [eax + 0x30]
jmp 0x5284c7
add edx, 4
lea ecx, [esp + 0x50]
push ecx
push edx
lea edx, [esp + 0x48]
push edx
call fcn.0040fe60
add esp, 0xc
lea ecx, [esp + 0x40]
mov dword [esp + 0x48], 0
call fcn.0059c910
mov ecx, dword [esp + 0x4c]
mov ax, word [ecx + 4]
test ax, ax
movsx eax, ax
mov dword [esp + 0x70], eax
jge 0x528501
neg eax
mov dword [esp + 0x3c], eax
mov ax, word [ecx + 8]
test ax, ax
movsx ebx, ax
mov dword [esp + 0x60], ebx
jge 0x528517
neg ebx
mov ax, word [ecx + 6]
test ax, ax
movsx edx, ax
mov edi, edx
jge 0x528527
neg edi
mov eax, dword [esp + 0x4c]
mov bp, word [eax + 0xa]
test bp, bp
movsx ecx, bp
mov eax, ecx
jge 0x52853b
neg eax
add eax, edi
mov edi, dword [esp + 0x3c]
add ebx, edi
cmp ebx, eax
jle 0x528577
mov ecx, dword [esp + 0x4c]
mov ax, word [ecx + 4]
test ax, ax
jge 0x52855e
mov eax, dword [esp + 0x70]
neg eax
mov edx, eax
jmp 0x528562
mov edx, dword [esp + 0x70]
cmp word [ecx + 8], 0
mov eax, dword [esp + 0x60]
jge 0x52856f
neg eax
add eax, edx
mov dword [esp + 0x3c], eax
jmp 0x528593
mov eax, dword [esp + 0x4c]
mov ax, word [eax + 6]
test ax, ax
jge 0x528586
neg edx
test bp, bp
jge 0x52858d
neg ecx
add ecx, edx
mov dword [esp + 0x3c], ecx
mov edi, dword [esi + 0x958]
fild dword [esp + 0x3c]
mov eax, dword [edi + 0x14]
test eax, eax
lea ebp, [eax + 0x30]
jne 0x5285aa
lea ebp, [edi + 4]
fadd st(0), st(0)
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x68]
fstp dword [esp + 0x40]
mov ebx, dword [esp + 0x40]
push ebx
push edx
call fcn.0040fe90
push eax
lea eax, [esp + 0x24]
push ebp
push eax
call fcn.0040fe30
mov eax, dword [edi + 0x14]
add esp, 0x18
test eax, eax
je 0x5285df
add eax, 0x30
jmp 0x5285e2
lea eax, [edi + 4]
push 1
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0056a490
add esp, 0x24
test al, al
jne 0x52867a
mov edi, dword [esi + 0x958]
mov eax, dword [edi + 0x14]
test eax, eax
lea ebp, [eax + 0x30]
jne 0x528615
lea ebp, [edi + 4]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.0040fe90
push eax
lea ecx, [esp + 0x98]
push ebp
push ecx
call fcn.0040fe60
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x34], edx
mov eax, dword [edi + 0x14]
add esp, 0x18
test eax, eax
je 0x528657
add eax, 0x30
jmp 0x52865a
lea eax, [edi + 4]
push 1
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0056a490
add esp, 0x24
test al, al
je 0x528692
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov edi, dword [esp + 0x5c]
nop
jmp 0x401b3b
test eax, eax
je 0x5286e2
fld dword [eax + 0x2c]
mov dword [esp + 0x1c], 0
fadd dword [eax + 0x28]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
fmul dword [0x858b8c]
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
fld dword [eax + 0x34]
mov dword [esp + 0x50], edx
fadd dword [eax + 0x30]
fmul dword [0x858b8c]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
jmp 0x528741
mov eax, dword [esp + 0x4c]
test eax, eax
mov dword [esp + 0x38], 0
jne 0x528741
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x528704
add ecx, 0x30
jmp 0x528707
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x528713
lea eax, [edx + 0x30]
jmp 0x528716
add eax, 4
mov edx, dword [eax]
fld dword [ecx + 4]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
cmp edi, 1
jne 0x528764
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
fstp dword [esp + 0x14]
fld dword [esp + 0x34]
fsub dword [esp + 0x54]
fstp dword [esp + 0x18]
fld dword [esp + 0x38]
jmp 0x528780
fld dword [esp + 0x40]
fsub dword [esp + 0x50]
fstp dword [esp + 0x14]
fld dword [esp + 0x44]
fsub dword [esp + 0x54]
fstp dword [esp + 0x18]
fld dword [esp + 0x48]
fsub dword [esp + 0x58]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x958]
fstp dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x5287b8
lea eax, [ecx + 0x30]
jmp 0x5287bb
add eax, 4
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov ebp, dword [eax + 8]
push 0
lea eax, [esp + 0x17]
push eax
push ebp
push ebx
push edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebp
call fcn.005696c0
fstp st(0)
add esp, 0x14
lea ecx, [esp + 0x7c]
mov dword [esp + 0x84], 0
call fcn.0059c910
mov eax, dword [esp + 0x74]
test eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
je 0x52887a
mov ecx, dword [eax + 0x170]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x52884a
add eax, 0x30
jmp 0x52884d
lea eax, [ecx + 4]
mov edx, dword [eax]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
call fcn.00411990
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5288c8
mov ecx, dword [eax + 0x170]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x528894
add eax, 0x30
jmp 0x528897
lea eax, [ecx + 4]
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
call fcn.00411990
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x528968
test eax, eax
je 0x52894b
fld dword [esp + 0x40]
fsub dword [esp + 0x30]
fld dword [esp + 0x44]
fsub dword [esp + 0x34]
fld dword [esp + 0x48]
fsub dword [esp + 0x38]
fstp dword [esp + 0x1c]
fxch st(1)
fmul dword [0x858b8c]
fstp dword [esp + 0x40]
fmul dword [0x858b8c]
fld dword [esp + 0x1c]
fmul dword [0x858b8c]
fld dword [esp + 0x40]
fadd dword [esp + 0x30]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
fxch st(1)
mov dword [esp + 0x64], ecx
fadd dword [esp + 0x34]
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fadd dword [esp + 0x38]
mov dword [esp + 0x68], edx
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
jmp 0x5289e8
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
jmp 0x5289e8
test eax, eax
je 0x528986
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
jmp 0x5289e8
fld dword [esp + 0x88]
mov dword [esp + 0x64], edi
fsub dword [esp + 0x50]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x8c]
mov dword [esp + 0x24], ecx
fsub dword [esp + 0x54]
lea ecx, [esp + 0x24]
fstp dword [esp + 0x18]
fld dword [esp + 0x90]
mov edx, dword [esp + 0x18]
fsub dword [esp + 0x58]
mov dword [esp + 0x28], edx
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x2c], 0
call fcn.0059c910
mov ecx, dword [0x8ccf1c]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.0040fec0
push eax
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x54]
push edx
call fcn.0040fe30
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
fld dword [esp + 0x50]
fadd dword [0x8ccf18]
mov dword [esp + 0x48], ecx
add esp, 0x18
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], edx
fstp dword [esp + 0x38]
push ecx
lea edx, [esp + 0x34]
push edx
mov ecx, esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.0050bec0
mov edi, dword [esp + 0x4c]
mov byte [esi + 0x4e], 1
mov ebp, 0x12
mov ebx, 2
call fcn.00448650
test al, al
jne 0x528a7f
mov al, byte [esp + 0x11]
test al, al
je 0x528ab0
cmp byte [esi + 0x4e], 1
jne 0x528ab0
cmp byte [esi + 0x2b], 1
je 0x528a93
cmp dword [esi + 0xb0], ebx
jne 0x528ab0
mov eax, dword [esi + 0x81c]
test eax, eax
jne 0x528aa1
test edi, edi
je 0x528ac6
mov word [0xb70140], 0xf
mov byte [esi + 0x26], 1
jmp 0x528ac6
mov al, byte [esi + 0x26]
test al, al
je 0x528abf
mov byte [esi + 0x28], 1
mov byte [esi + 0x26], 0
mov word [0xb70140], bp
mov ecx, dword [esi + 0x958]
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x60], 0
call fcn.006d1080
push eax
mov ecx, esi
call fcn.0050af00
mov ecx, dword [esi + 0xb4]
test ecx, ecx
jne 0x528b0a
mov al, byte [esi + 0x26]
test al, al
jne 0x528b0a
mov di, 0x10
mov dword [esi + 0xb8], ecx
mov word [0xb70140], di
jmp 0x528b4a
cmp ecx, 1
jne 0x528b1c
mov edx, dword [esp + 0x5c]
mov eax, dword [edx*4 + 0x8cc3e0]
jmp 0x528b3d
cmp ecx, ebx
jne 0x528b2d
mov edx, dword [esp + 0x5c]
mov eax, dword [edx*4 + 0x8cc3f4]
jmp 0x528b3d
cmp ecx, 3
jne 0x528b43
mov edx, dword [esp + 0x5c]
mov eax, dword [edx*4 + 0x8cc408]
mov dword [esi + 0xb8], eax
mov di, word [0xb70140]
cmp ecx, 4
jne 0x528b60
mov al, byte [esi + 0x26]
test al, al
jne 0x528b60
mov dword [esi + 0xb8], 0x3f800000
fld dword [esi + 0xbc]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x528b7f
mov edx, dword [esi + 0xb8]
mov dword [esi + 0xbc], edx
mov al, byte [esi + 0x39]
fld dword [esi + 0xc0]
cmp al, 1
jne 0x528bf1
fcomp dword [esi + 0xc4]
fld dword [0xb7cb5c]
fmul dword [0x85a6f0]
fnstsw ax
test ah, 5
jp 0x528bcb
fadd dword [esi + 0xc0]
fcom dword [esi + 0xc4]
fnstsw ax
test ah, 0x41
jne 0x528bc0
fstp st(0)
fld dword [esi + 0xc4]
fstp dword [esi + 0xc0]
jmp 0x528cd9
fsubr dword [esi + 0xc0]
fcom dword [esi + 0xc4]
fnstsw ax
test ah, 5
jp 0x528bc0
fstp st(0)
fld dword [esi + 0xc4]
fstp dword [esi + 0xc0]
jmp 0x528cd9
mov al, byte [esi + 0x54]
test al, al
je 0x528c66
fcomp dword [0x863274]
mov dword [esp + 0x20], 0x3f266666
fld dword [0xb7cb5c]
fmul dword [0x85a6f0]
fnstsw ax
test ah, 5
jp 0x528c41
fadd dword [esi + 0xc0]
fld dword [0x863274]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x528c36
fstp st(0)
fld dword [0x863274]
fstp dword [esi + 0xc0]
jmp 0x528cd9
fsubr dword [esi + 0xc0]
fld dword [0x863274]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x528c36
fstp st(0)
fld dword [0x863274]
fstp dword [esi + 0xc0]
jmp 0x528cd9
fcomp dword [esi + 0xb8]
fld dword [0xb7cb5c]
fmul dword [0x85a6f0]
fnstsw ax
test ah, 5
jp 0x528c94
fadd dword [esi + 0xc0]
fcom dword [esi + 0xb8]
fnstsw ax
test ah, 0x41
jne 0x528caf
jmp 0x528ca7
fsubr dword [esi + 0xc0]
fcom dword [esi + 0xb8]
fnstsw ax
test ah, 5
jp 0x528caf
fstp st(0)
fld dword [esi + 0xb8]
cmp ecx, 3
fstp dword [esi + 0xc0]
jne 0x528cd9
fld dword [esi + 0xb8]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x528cd9
mov eax, dword [esi + 0xb8]
mov dword [esi + 0xc0], eax
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
push 0
push 0x3e800000
lea eax, [ecx + esi]
lea edx, [eax + 0x1dc]
push 0x3dcccccd
push edx
add eax, 0x1d8
push eax
mov eax, dword [esp + 0x34]
push eax
call fcn.00509ae0
add esp, 0x18
jmp 0x52a002
cmp al, 3
jne 0x529ffb
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404a0
test al, al
jne 0x528d43
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404f0
test al, al
je 0x528dbd
cmp byte [0xa43088], 1
je 0x528dbd
mov al, byte [esi + 0x3d]
test al, al
jne 0x528dbd
mov al, byte [esi + 0x54]
test al, al
jne 0x528dbd
mov al, byte [esi + 0x1f]
test al, al
jne 0x528dbd
cmp byte [esi + 0x2b], 1
je 0x528d6f
cmp dword [esi + 0xb0], ebx
jne 0x528dbd
call fcn.00441390
test al, al
jne 0x528dbd
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005404a0
test al, al
mov eax, dword [esi + 0xc8]
je 0x528d96
dec eax
jmp 0x528d97
inc eax
cmp eax, 3
mov dword [esi + 0xc8], eax
jle 0x528dae
mov dword [esi + 0xc8], 1
jmp 0x528dbd
cmp eax, 1
jge 0x528dbd
mov dword [esi + 0xc8], 3
cmp byte [esi + 0x2b], 1
mov word [0xb70140], 4
je 0x528dd7
mov al, byte [esi + 0x41]
test al, al
je 0x528f2d
mov ecx, dword [esi + 0x958]
mov dl, byte [ecx + 0x36]
and dl, 7
cmp dl, 3
jne 0x528f2d
mov al, byte [esi + 0x3d]
test al, al
je 0x528dfe
mov al, byte [esi + 0x41]
test al, al
je 0x528f2d
lea ecx, [esi + 0x174]
call fcn.0050a850
test al, al
jne 0x528f2d
push 0xffffffffffffffff
call fcn.0056e210
mov eax, dword [eax + 0x47c]
add esp, 4
push 0
lea ecx, [eax + 4]
call fcn.00681810
test eax, eax
jne 0x528e55
push eax
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540e80
test ax, ax
jne 0x528e55
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540f80
mov al, byte [esi + 0x1f]
test al, al
je 0x528f31
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fc90
test ax, ax
jne 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fd30
test ax, ax
jne 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x1c], 0
jne 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x1e], 0
jne 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x20], 0
jne 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x22], 0
jne 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x1a], 0
jne 0x528f2d
mov eax, dword [0xb7cb84]
sub eax, dword [esi + 0x60]
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x528f07
fadd dword [0x858c54]
fcomp dword [0x863270]
fnstsw ax
test ah, 0x41
je 0x528f2d
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.005406b0
test al, al
je 0x528f31
mov byte [esi + 0x20], 1
mov byte [esi + 0x1f], 0
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
mov ecx, eax
call fcn.005e3960
test al, al
je 0x528f66
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x480]
fld dword [ecx + 0x14]
add esp, 4
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x528f6a
mov byte [esi + 0x1f], 0
mov al, byte [esi + 0x1f]
test al, al
je 0x528f8b
push 0
mov word [0xb70140], 0x10
call fcn.0053fb70
add esp, 4
or byte [eax + 0x10e], 1
mov edx, dword [esi + 0xc8]
mov eax, edx
dec eax
je 0x528fc4
sub eax, ebx
je 0x528faf
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
lea ecx, [eax + esi]
mov eax, dword [ecx + 0x254]
jmp 0x528fd7
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
mov eax, dword [ecx + esi + 0x258]
add ecx, esi
jmp 0x528fd7
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
mov eax, dword [ecx + esi + 0x250]
add ecx, esi
fld dword [esi + 0xd4]
mov dword [esi + 0xcc], eax
cmp byte [esi + 0x38], 1
jne 0x52904e
fcomp dword [esi + 0xd8]
fld dword [0xb7cb5c]
fmul dword [0x85a6f0]
fnstsw ax
test ah, 5
jp 0x529028
fadd dword [esi + 0xd4]
fcom dword [esi + 0xd8]
fnstsw ax
test ah, 0x41
jne 0x52901d
fstp st(0)
fld dword [esi + 0xd8]
fstp dword [esi + 0xd4]
jmp 0x529136
fsubr dword [esi + 0xd4]
fcom dword [esi + 0xd8]
fnstsw ax
test ah, 5
jp 0x52901d
fstp st(0)
fld dword [esi + 0xd8]
fstp dword [esi + 0xd4]
jmp 0x529136
mov al, byte [esi + 0x54]
test al, al
je 0x5290c3
fcomp dword [0x8ccf14]
mov dword [esp + 0x3c], 0x3f333333
fld dword [0xb7cb5c]
fmul dword [0x85a6f0]
fnstsw ax
test ah, 5
jp 0x52909e
fadd dword [esi + 0xd4]
fld dword [0x8ccf14]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x529093
fstp st(0)
fld dword [0x8ccf14]
fstp dword [esi + 0xd4]
jmp 0x529136
fsubr dword [esi + 0xd4]
fld dword [0x8ccf14]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x529093
fstp st(0)
fld dword [0x8ccf14]
fstp dword [esi + 0xd4]
jmp 0x529136
fcomp dword [esi + 0xcc]
fld dword [0xb7cb5c]
fmul dword [0x85a6f0]
fnstsw ax
test ah, 5
jp 0x5290f1
fadd dword [esi + 0xd4]
fcom dword [esi + 0xcc]
fnstsw ax
test ah, 0x41
jne 0x52910c
jmp 0x529104
fsubr dword [esi + 0xd4]
fcom dword [esi + 0xcc]
fnstsw ax
test ah, 5
jp 0x52910c
fstp st(0)
fld dword [esi + 0xcc]
cmp edx, 3
fstp dword [esi + 0xd4]
jne 0x529136
fld dword [esi + 0xcc]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x529136
mov edx, dword [esi + 0xcc]
mov dword [esi + 0xd4], edx
push 0
jmp 0x4038eb
lea eax, [ecx + 0x1d4]
push 0x3dcccccd
push eax
add ecx, 0x1d0
push ecx
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00509ae0
xor ebp, ebp
add esp, 0x18
mov dword [esp + 0x70], ebp
call fcn.0072dd30
test al, al
je 0x529180
call fcn.0072dad0
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x70], ebp
je 0x529180
mov byte [esp + 0x11], 1
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x529192
lea eax, [ecx + 0x30]
jmp 0x529195
add eax, 4
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.00449ba0
add esp, 0xc
test al, al
jne 0x5291d6
mov al, byte [esp + 0x11]
test al, al
jne 0x5291d6
mov al, byte [esi + 0x26]
test al, al
je 0x5291cd
mov byte [esi + 0x28], 1
mov byte [esi + 0x26], 0
mov byte [esi + 0x4e], 0
jmp 0x529bf4
mov al, byte [esi + 0x4e]
test al, al
jne 0x529b9e
cmp byte [esi + 0x2b], 1
jne 0x529b9e
mov ecx, dword [esi + 0x81c]
test ecx, ecx
jne 0x529209
mov al, byte [esp + 0x11]
test al, al
je 0x52990c
test ecx, ecx
je 0x5292d5
mov edx, dword [esi + 0x958]
lea eax, [esp + 0x3c]
mov dword [esp + 0x20], edx
push eax
lea edx, [esp + 0x24]
push edx
call fcn.00449ff0
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x529274
mov eax, dword [ecx + 0x14]
test eax, eax
mov ebx, 1
lea edx, [eax + 0x30]
jne 0x52923c
lea edx, [ecx + 4]
test eax, eax
mov edx, dword [edx]
mov dword [esp + 0x30], edx
je 0x52925d
add eax, 0x30
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
jmp 0x529507
lea eax, [ecx + 4]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
jmp 0x529507
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x529507
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
mov ebx, 1
je 0x529297
add ecx, 0x30
jmp 0x52929a
lea ecx, [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x5292be
mov edx, dword [ecx + 0x34]
lea eax, [ecx + 0x30]
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], 0
jmp 0x529507
mov edx, dword [eax + 8]
add eax, 4
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], 0
jmp 0x529507
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
test ebp, ebp
lea ecx, [eax + esi + 0x310]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov ebx, 1
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
je 0x529507
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.0072d6d0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x958]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
mov dword [esp + 0x54], edx
je 0x52933d
lea eax, [ecx + 0x30]
jmp 0x529340
add eax, 4
lea ecx, [esp + 0x50]
push ecx
push eax
lea edx, [esp + 0x48]
push edx
call fcn.0040fe60
add esp, 0xc
lea ecx, [esp + 0x40]
mov dword [esp + 0x48], 0
call fcn.0059c910
mov ax, word [ebp + 4]
test ax, ax
movsx eax, ax
mov dword [esp + 0x4c], eax
jge 0x529376
neg eax
mov dword [esp + 0x20], eax
mov ax, word [ebp + 8]
test ax, ax
movsx ebx, ax
mov dword [esp + 0x60], ebx
jge 0x52938c
neg ebx
mov ax, word [ebp + 6]
test ax, ax
movsx edx, ax
mov edi, edx
jge 0x52939c
neg edi
mov bp, word [ebp + 0xa]
test bp, bp
movsx ecx, bp
mov eax, ecx
jge 0x5293ac
neg eax
add eax, edi
mov edi, dword [esp + 0x20]
add ebx, edi
cmp ebx, eax
jle 0x5293e8
mov ecx, dword [esp + 0x70]
mov ax, word [ecx + 4]
test ax, ax
jge 0x5293cf
mov eax, dword [esp + 0x4c]
neg eax
mov edx, eax
jmp 0x5293d3
mov edx, dword [esp + 0x4c]
cmp word [ecx + 8], 0
mov eax, dword [esp + 0x60]
jge 0x5293e0
neg eax
add eax, edx
mov dword [esp + 0x20], eax
jmp 0x529404
mov eax, dword [esp + 0x70]
mov ax, word [eax + 6]
test ax, ax
jge 0x5293f7
neg edx
test bp, bp
jge 0x5293fe
neg ecx
add ecx, edx
mov dword [esp + 0x20], ecx
mov edi, dword [esi + 0x958]
fild dword [esp + 0x20]
mov eax, dword [edi + 0x14]
test eax, eax
lea ebp, [eax + 0x30]
jne 0x52941b
lea ebp, [edi + 4]
fadd st(0), st(0)
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x68]
fstp dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
push ebx
push edx
call fcn.0040fe90
push eax
lea eax, [esp + 0x34]
push ebp
push eax
call fcn.0040fe30
mov eax, dword [edi + 0x14]
add esp, 0x18
test eax, eax
je 0x529450
add eax, 0x30
jmp 0x529453
lea eax, [edi + 4]
push 1
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.0056a490
add esp, 0x24
test al, al
jne 0x5294eb
mov edi, dword [esi + 0x958]
mov eax, dword [edi + 0x14]
test eax, eax
lea ebp, [eax + 0x30]
jne 0x529486
lea ebp, [edi + 4]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.0040fe90
push eax
lea ecx, [esp + 0x98]
push ebp
push ecx
call fcn.0040fe60
mov edx, dword [eax]
mov dword [esp + 0x3c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x44], edx
mov eax, dword [edi + 0x14]
add esp, 0x18
test eax, eax
je 0x5294c8
add eax, 0x30
jmp 0x5294cb
lea eax, [edi + 4]
push 1
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.0056a490
add esp, 0x24
test al, al
je 0x529503
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x5c]
mov eax, dword [esi + 0x81c]
test eax, eax
mov edi, dword [esp + 0x70]
je 0x529557
fld dword [eax + 0x2c]
mov dword [esp + 0x2c], 0
fadd dword [eax + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], ecx
fmul dword [0x858b8c]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
fld dword [eax + 0x34]
mov dword [esp + 0x50], edx
fadd dword [eax + 0x30]
fmul dword [0x858b8c]
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], eax
jmp 0x5295b2
test edi, edi
mov dword [esp + 0x38], 0
jne 0x5295b2
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x529575
add ecx, 0x30
jmp 0x529578
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x529584
lea eax, [edx + 0x30]
jmp 0x529587
add eax, 4
mov edx, dword [eax]
fld dword [ecx + 4]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov eax, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
cmp ebx, 1
jne 0x5295d5
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
fstp dword [esp + 0x24]
fld dword [esp + 0x34]
fsub dword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x38]
jmp 0x5295f1
fld dword [esp + 0x40]
fsub dword [esp + 0x50]
fstp dword [esp + 0x24]
fld dword [esp + 0x44]
fsub dword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x48]
fsub dword [esp + 0x58]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x958]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x529629
lea eax, [ecx + 0x30]
jmp 0x52962c
add eax, 4
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
push 0
lea ebp, [esp + 0x17]
push ebp
push eax
push ecx
push edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
call fcn.005696c0
fstp dword [esp + 0x50]
mov al, byte [esp + 0x27]
add esp, 0x14
test al, al
jne 0x529678
fld dword [esp + 0x90]
fsub dword [0x858cc4]
fstp dword [esp + 0x3c]
cmp ebx, 1
mov dword [esp + 0x84], 0
jne 0x529817
mov eax, dword [esi + 0x81c]
test eax, eax
jne 0x5297d4
mov al, byte [esp + 0x11]
test al, al
je 0x5297d4
lea ecx, [esp + 0x7c]
call fcn.0059c910
test edi, edi
je 0x5297b5
xor eax, eax
mov ax, word [edi + 4]
test ax, ax
mov dword [esp + 0x74], eax
movsx eax, ax
mov dword [esp + 0x4c], eax
jge 0x5296cf
neg eax
mov dword [esp + 0x20], eax
xor eax, eax
mov ax, word [edi + 8]
test ax, ax
movsx ebx, ax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x78], eax
jge 0x5296eb
neg ebx
mov ecx, dword [esp + 0x70]
xor eax, eax
mov ax, word [ecx + 6]
test ax, ax
movsx edx, ax
mov edi, edx
mov dword [esp + 0x5c], eax
jge 0x529705
neg edi
mov bp, word [ecx + 0xa]
test bp, bp
movsx ecx, bp
mov eax, ecx
jge 0x529715
neg eax
add eax, edi
mov edi, dword [esp + 0x20]
add ebx, edi
cmp ebx, eax
jle 0x52974d
cmp word [esp + 0x74], 0
jge 0x529733
mov eax, dword [esp + 0x4c]
neg eax
mov ecx, eax
jmp 0x529737
mov ecx, dword [esp + 0x4c]
cmp word [esp + 0x78], 0
mov eax, dword [esp + 0x60]
jge 0x529745
neg eax
add eax, ecx
mov dword [esp + 0x20], eax
jmp 0x529764
cmp word [esp + 0x5c], 0
jge 0x529757
neg edx
test bp, bp
jge 0x52975e
neg ecx
add ecx, edx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
lea eax, [esp + 0x7c]
push eax
lea edx, [esp + 0x28]
fmul dword [0x858cb0]
fadd dword [0x86326c]
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
push ecx
push edx
call fcn.0040fe90
push eax
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.0040fe30
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
jmp 0x529858
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x28]
push 0x40700000
push ecx
call fcn.0040fe90
push eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x50]
jmp 0x52983d
lea ecx, [esp + 0x7c]
call fcn.0059c910
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x28]
push 0x41500000
push edx
call fcn.0040fe90
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.0040fe30
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
jmp 0x529858
lea ecx, [esp + 0x7c]
call fcn.0059c910
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x28]
push 0x41500000
push ecx
call fcn.0040fe90
push eax
lea edx, [esp + 0x50]
lea eax, [esp + 0x74]
push edx
push eax
call fcn.0040fe30
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0xc8]
add esp, 0x18
cmp eax, 4
jne 0x5298d1
mov al, byte [esp + 0x11]
test al, al
jne 0x5298d1
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
push 0xffffffffffffffff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
call fcn.0056e210
mov ecx, dword [eax + 0x14]
add esp, 4
test ecx, ecx
je 0x52989c
lea eax, [ecx + 0x30]
jmp 0x52989f
add eax, 4
fld dword [esp + 0x58]
mov ecx, dword [esi + 0x81c]
test ecx, ecx
fadd dword [eax + 8]
fadd dword [0x859974]
fstp dword [esp + 0x38]
je 0x5298df
fld dword [esp + 0x38]
fcomp dword [ecx + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x5298df
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x38], ecx
jmp 0x5298df
fld dword [esp + 0x3c]
fadd dword [0x863268]
fstp dword [esp + 0x38]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x34]
push eax
mov ecx, esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.0050bec0
mov byte [esi + 0x4e], 1
mov ecx, dword [esi + 0x81c]
test ecx, ecx
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
je 0x529b9e
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00449ff0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5299a3
mov ecx, dword [eax + 0x170]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x529973
add eax, 0x30
jmp 0x529976
lea eax, [ecx + 4]
mov edx, dword [eax]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
call fcn.00411990
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5299f1
mov ecx, dword [eax + 0x170]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x5299bd
add eax, 0x30
jmp 0x5299c0
lea eax, [ecx + 4]
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call fcn.00411990
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x529a91
test eax, eax
je 0x529a74
fld dword [esp + 0x24]
fsub dword [esp + 0x64]
fld dword [esp + 0x28]
fsub dword [esp + 0x68]
fld dword [esp + 0x2c]
fsub dword [esp + 0x6c]
fstp dword [esp + 0x2c]
fxch st(1)
fmul dword [0x858b8c]
fstp dword [esp + 0x40]
fmul dword [0x858b8c]
fld dword [esp + 0x2c]
fmul dword [0x858b8c]
fld dword [esp + 0x40]
fadd dword [esp + 0x64]
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
fxch st(1)
mov dword [esp + 0x40], ecx
fadd dword [esp + 0x68]
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fadd dword [esp + 0x6c]
mov dword [esp + 0x44], edx
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
jmp 0x529b26
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
jmp 0x529b26
test eax, eax
je 0x529aaf
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
jmp 0x529b26
fld dword [esp + 0x88]
mov ecx, dword [esp + 0x88]
fsub dword [esp + 0x50]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x40], ecx
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
fld dword [esp + 0x8c]
mov dword [esp + 0x48], eax
fsub dword [esp + 0x54]
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
fstp dword [esp + 0x28]
fld dword [esp + 0x90]
mov edx, dword [esp + 0x28]
fsub dword [esp + 0x58]
mov dword [esp + 0x18], edx
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c], 0
call fcn.0059c910
mov ecx, dword [0x8ccf10]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.0040fec0
push eax
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x78]
push edx
call fcn.0040fe30
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
fld dword [esp + 0x50]
fadd dword [0x8ccf0c]
mov dword [esp + 0x48], ecx
add esp, 0x18
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], edx
fstp dword [esp + 0x38]
push ecx
lea edx, [esp + 0x34]
push edx
mov ecx, esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.0050bec0
mov byte [esi + 0x4e], 1
call fcn.00448650
test al, al
jne 0x529baf
mov al, byte [esp + 0x11]
test al, al
je 0x529bdc
cmp byte [esi + 0x2b], 1
jne 0x529bdc
cmp byte [esi + 0x4e], 1
jne 0x529bdc
mov eax, dword [esi + 0x81c]
test eax, eax
jne 0x529bcd
mov al, byte [esp + 0x11]
test al, al
je 0x529bf4
mov word [0xb70140], 0xf
mov byte [esi + 0x26], 1
jmp 0x529bf4
mov al, byte [esi + 0x26]
test al, al
je 0x529beb
mov byte [esi + 0x28], 1
mov byte [esi + 0x26], 0
mov word [0xb70140], 4
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540670
test al, al
jne 0x529c48
mov ax, word [esi + 0x830]
test ax, ax
je 0x529c48
cmp ax, 0x2d
je 0x529c48
cmp ax, 0x37
je 0x529c48
cmp ax, 0x41
je 0x529c48
cmp ax, 0x2e
jne 0x529c41
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0xfc]
add esp, 4
test ecx, ecx
jne 0x529c48
mov ecx, esi
call fcn.0050ab10
mov di, word [esi + 0x824]
test di, di
je 0x529c5d
mov word [0xb70140], di
jmp 0x529c64
mov di, word [0xb70140]
mov bp, word [esi + 0x830]
test bp, bp
je 0x52a002
mov al, byte [esp + 0x11]
test al, al
jne 0x52a002
cmp bp, 7
je 0x52a086
cmp bp, 8
je 0x52a086
cmp bp, 0x33
je 0x52a086
cmp bp, 0x22
je 0x52a086
cmp bp, 0x2d
je 0x52a086
cmp bp, 0x2e
je 0x52a086
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
lea ebx, [eax + esi]
lea ecx, [ebx + 0x174]
call fcn.00509dc0
test al, al
jne 0x52a086
cmp di, 0x25
je 0x52a002
mov byte [esp + 0x12], al
mov eax, dword [esi + 0x958]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x529cfc
lea eax, [ecx + 0x30]
jmp 0x529cff
add eax, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], edx
push ecx
lea edx, [esi + 0x854]
mov dword [esp + 0x30], eax
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.0040fe60
lea ecx, [esp + 0x30]
push ecx
add ebx, 0x310
lea edx, [esp + 0x50]
push ebx
push edx
call fcn.0040fe60
push 0xffffffffffffffff
mov dword [esp + 0x3c], 0
call fcn.0056e210
mov ecx, dword [eax + 0x71c]
add esp, 0x1c
test ecx, ecx
jne 0x529d77
push 0xffffffffffffffff
call fcn.0056e210
mov eax, dword [eax + 0x480]
mov cl, byte [eax + 0x34]
add esp, 4
test cl, 8
je 0x529ffb
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x71c]
add esp, 4
test ecx, ecx
je 0x529deb
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x71c]
mov dl, byte [ecx + 0x36]
and dl, 7
add esp, 4
cmp dl, 3
jne 0x529deb
push 0xffffffffffffffff
call fcn.0056e210
mov eax, dword [eax + 0x71c]
mov ecx, dword [eax + 0x530]
add esp, 4
cmp ecx, 0x37
je 0x529ddc
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x71c]
mov eax, dword [ecx + 0x530]
add esp, 4
cmp eax, 0x36
jne 0x529deb
mov edx, dword [0x8ccf08]
mov byte [esp + 0x12], 1
mov dword [esp + 0x20], edx
fld dword [esp + 0x18]
mov eax, dword [esp + 0x44]
fmul dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
fld dword [esp + 0x14]
push eax
fmul dword [esp + 0x18]
push ecx
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
call fcn.0053cc70
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.0053cc70
fstp st(0)
mov di, word [esi + 0x830]
add esp, 0x10
cmp di, 0x35
mov word [0xb70140], di
mov dword [esp + 0x74], 0
jne 0x529ef0
mov al, byte [esp + 0x12]
test al, al
je 0x52a07a
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x71c]
add esp, 4
test ecx, ecx
je 0x529ee9
mov al, byte [esi + 0x58]
test al, al
je 0x529e89
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
cmp word [ecx + esi + 0x180], 0x23
jne 0x529ee9
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov edi, 0x23
cmp word [edx + esi + 0x180], di
jne 0x529ec5
push 0xffffffffffffffff
call fcn.0056e210
mov eax, dword [eax + 0x71c]
mov cl, byte [eax + 0x36]
and cl, 7
add esp, 4
cmp cl, 3
jne 0x529ec5
fld dword [0x8ccf04]
jmp 0x529ec9
fld dword [esp + 0x20]
fld dword [esp + 0x78]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 5
jp 0x529ee9
mov dword [esp + 0x74], 0x40b33333
mov word [0xb70140], di
jmp 0x529efa
mov di, word [0xb70140]
cmp di, 0x23
jne 0x52a07a
mov al, byte [0xb7013d]
test al, al
jne 0x52a002
mov ecx, dword [esi + 0x958]
mov dword [esp + 0x20], 0
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x529f21
add eax, 0x30
jmp 0x529f24
lea eax, [ecx + 4]
fld dword [esp + 0x3c]
mov edx, dword [eax]
fcos
mov dword [esp + 0x14], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
fmul dword [esp + 0x74]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x3c]
fsin
fmul dword [esp + 0x74]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fadd dword [0x863264]
fstp dword [esp + 0x1c]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x529f76
add eax, 0x30
jmp 0x529f79
lea eax, [ecx + 4]
push 0
push 1
push 1
push 0
push 1
push 0
push 0
push 1
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0xbc]
push edx
lea ecx, [esp + 0x3c]
push ecx
push eax
call fcn.0056ba00
add esp, 0x30
test al, al
lea edx, [esp + 0x14]
je 0x529fcf
push edx
lea eax, [esp + 0x9c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
push eax
jmp 0x529fed
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
push edx
mov ecx, esi
call fcn.0050bec0
mov byte [0xb7013d], 1
mov di, word [0xb70140]
mov al, byte [esi + 0x43]
test al, al
je 0x52a0f8
jmp 0x403817
test eax, eax
je 0x52a0f8
mov ecx, dword [0xb7cf28]
test ecx, ecx
je 0x52a0f8
mov edi, dword [eax + 0x46c]
mov edx, 0x100
test edx, edi
je 0x52a0ed
test dword [ecx + 0x46c], edx
je 0x52a0ed
mov eax, dword [eax + 0x58c]
test eax, eax
je 0x52a0ed
mov ecx, dword [ecx + 0x58c]
test ecx, ecx
je 0x52a0ed
cmp eax, ecx
mov dword [esi + 0x958], eax
jne 0x52a0e7
mov cl, byte [esi + 0x44]
test cl, cl
je 0x52a0e1
mov di, word [esi + 0x48]
jmp 0x52a0f1
mov byte [0xb7013d], 0
jmp 0x52a002
movzx eax, byte [0xb7cd74]
imul eax, eax, 0x190
mov ecx, dword [eax + 0xb7cd98]
cmp dword [ecx + 0x530], 0x18
jne 0x52a0d2
cmp di, 0x25
je 0x52a0d2
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
lea ecx, [edx + esi + 0x174]
call fcn.00509dc0
test al, al
jne 0x52a0d2
mov di, 4
mov word [0xb70140], di
jmp 0x52a002
mov di, bp
mov word [0xb70140], di
jmp 0x52a002
mov di, word [esi + 0x4a]
jmp 0x52a0f1
mov di, word [esi + 0x46]
jmp 0x52a0f1
mov di, word [esi + 0x4c]
mov word [0xb70140], di
movzx eax, byte [0xb7cd74]
imul eax, eax, 0x190
mov eax, dword [eax + 0xb7cd98]
mov eax, dword [eax + 0x530]
xor cl, cl
cmp eax, 0x3f
mov byte [esp + 0x13], cl
jne 0x52a125
mov byte [0xb7013c], 1
jmp 0x52a13b
mov dl, byte [0xb7013c]
test dl, dl
je 0x52a13b
mov byte [esp + 0x13], 1
mov byte [0xb7013c], 0
cmp dword [0xb70138], 0x3f
je 0x52a168
cmp eax, 0x3f
jne 0x52a168
mov edx, dword [esi + 0xb4]
test edx, edx
jne 0x52a164
mov edx, dword [esi + 0x958]
mov dl, byte [edx + 0x36]
and dl, 7
cmp dl, 2
je 0x52a16a
mov cl, 1
jmp 0x52a16a
xor cl, cl
cmp cl, 1
mov dword [0xb70138], eax
jne 0x52a195
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov di, 0x20
mov dword [0xb70134], 0x20
mov byte [eax + esi + 0x17e], cl
jmp 0x52a1a1
cmp eax, 0x3f
jne 0x52a1a8
mov di, word [0xb70134]
mov word [0xb70140], di
movzx ecx, byte [0xb7cd74]
imul ecx, ecx, 0x190
mov edx, dword [ecx + 0xb7cd98]
cmp dword [edx + 0x530], 0x37
jne 0x52a2c7
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov byte [esi + 0x2f], 0
mov ax, word [eax + esi + 0x180]
cmp ax, 0x1d
je 0x52a2bc
cmp ax, 0x20
jne 0x52a1f6
mov di, ax
jmp 0x52a2c0
mov ebx, dword [esi + 0x958]
mov cl, byte [ebx + 0x36]
and cl, 7
cmp cl, 3
jne 0x52a2aa
mov eax, dword [ebx + 0x47c]
add eax, 0x130
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
jmp 0x52a226
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x52a298
mov eax, dword [edi + 0x47c]
push 0x44c
lea ecx, [eax + 4]
call fcn.00681740
test eax, eax
je 0x52a298
mov ebp, dword [eax + 8]
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
cmp ebp, eax
jne 0x52a298
mov eax, dword [ebx + 0x14]
test eax, eax
lea ecx, [eax + 0x30]
jne 0x52a262
lea ecx, [ebx + 4]
mov eax, dword [edi + 0x14]
test eax, eax
je 0x52a26e
add eax, 0x30
jmp 0x52a271
lea eax, [edi + 4]
push ecx
push eax
lea edx, [esp + 0x1c]
push edx
call fcn.0040fe60
add esp, 0xc
mov ecx, eax
call fcn.004082c0
fcomp dword [0x858b90]
fnstsw ax
test ah, 5
jnp 0x52a4e3
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, 0x10
mov dword [esp + 0x20], ecx
jl 0x52a222
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
mov byte [ecx + esi + 0x17e], 1
mov di, 0x1d
mov word [0xb70140], di
cmp byte [esi + 0x30], 1
jne 0x52a4aa
cmp di, 4
je 0x52a323
cmp di, 0x22
je 0x52a323
cmp di, 7
je 0x52a323
cmp di, 8
je 0x52a323
cmp di, 0x33
je 0x52a323
cmp di, 0x2e
je 0x52a323
cmp di, 0xb
je 0x52a323
cmp di, 0x1c
je 0x52a323
cmp di, 0x23
je 0x52a323
cmp di, 0x12
je 0x52a323
cmp di, 3
je 0x52a323
mov al, byte [0xb6ec2e]
test al, al
jne 0x52a323
mov ecx, esi
call fcn.0050bd40
movzx edx, byte [esi + 0x59]
mov ax, word [esi + 0xc38]
imul edx, edx, 0x238
mov word [edx + esi + 0x180], ax
mov word [0xb70140], ax
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov byte [esi + 0x2a], 1
mov byte [eax + esi + 0x17e], 1
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
lea eax, [edx + esi + 0x2c8]
lea ecx, [esi + 0x860]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov ecx, dword [edx + esi + 0x390]
test ecx, ecx
lea eax, [edx + esi + 0x390]
je 0x52a3a1
push eax
call fcn.00571a00
movzx eax, byte [esi + 0x59]
mov ecx, dword [esi + 0x958]
imul eax, eax, 0x238
mov dword [eax + esi + 0x390], ecx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov ecx, dword [edx + esi + 0x390]
lea eax, [edx + esi + 0x390]
push eax
call fcn.00571b70
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea edx, [ecx + esi + 0x2d4]
lea eax, [esi + 0x86c]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
lea eax, [edx + esi + 0x2e0]
lea ecx, [esi + 0x878]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov byte [edx + esi + 0x176], 0
movzx eax, byte [esi + 0x59]
lea ecx, [eax + 1]
and ecx, 0x80000001
jns 0x52a44a
dec ecx
or ecx, 0xfffffffe
inc ecx
imul ecx, ecx, 0x238
imul eax, eax, 0x238
lea edx, [ecx + esi + 0x2ec]
mov ecx, dword [edx]
lea eax, [eax + esi + 0x2ec]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov byte [esi + 0x30], 0
mov byte [eax + esi + 0x17e], 1
mov ecx, dword [esi + 0xb8]
mov edx, dword [esi + 0xcc]
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xd4], edx
mov byte [esi + 0x58], 0
mov byte [esi + 0x4f], 0
mov al, byte [0xba6728]
test al, al
je 0x52a4bc
mov word [0xb70140], 9
mov eax, dword [esi + 0x958]
test eax, eax
mov byte [esp + 0x12], 1
je 0x52a50b
mov al, byte [eax + 0x36]
and al, 7
cmp al, 2
je 0x52a4fe
cmp dword [esi + 0xc8], 5
jne 0x52a50b
mov byte [esi + 0x2e], 1
jmp 0x52a50b
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov di, 0x20
mov byte [eax + esi + 0x17e], 1
jmp 0x52a2c0
cmp dword [esi + 0xb4], 5
jne 0x52a50b
mov byte [esi + 0x2f], 1
push 0
push 0xffffffffffffffff
call fcn.0056e0d0
add esp, 8
test eax, eax
je 0x52a536
push 0
push 0xffffffffffffffff
call fcn.0056e0d0
mov ecx, dword [eax + 0x590]
add esp, 8
cmp ecx, 6
jne 0x52a536
mov byte [esi + 0x2f], 1
mov eax, dword [esi + 0x958]
test eax, eax
je 0x52a59c
mov cl, byte [eax + 0x36]
and cl, 7
cmp cl, 2
jne 0x52a59c
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
test eax, eax
je 0x52a59c
mov ecx, dword [eax + 0x530]
cmp ecx, 0x3f
je 0x52a569
cmp ecx, 0x37
jne 0x52a59c
mov byte [esi + 0x2e], 0
mov eax, dword [eax + 0x530]
cmp eax, 0x3f
mov byte [esp + 0x12], 0
jne 0x52a58a
mov dx, 0x20
mov word [0xb70140], dx
jmp 0x52a5a3
cmp eax, 0x37
jne 0x52a59c
mov dx, 0x1d
mov word [0xb70140], dx
jmp 0x52a5a3
mov dx, word [0xb70140]
cmp byte [esi + 0x34], 1
je 0x52a673
cmp dx, 0x1d
je 0x52a673
cmp dx, 0x17
je 0x52a673
cmp dx, 0x1c
je 0x52a673
cmp dx, 0xb
je 0x52a673
cmp dx, 7
je 0x52a673
cmp dx, 0x23
je 0x52a673
cmp dx, 8
je 0x52a673
cmp dx, 0x33
je 0x52a673
cmp dx, 0x20
je 0x52a673
cmp dx, 0x21
je 0x52a673
cmp dx, 0x22
je 0x52a673
cmp dx, 0x24
je 0x52a673
cmp dx, 0x27
je 0x52a673
cmp dx, 0x28
je 0x52a673
cmp dx, 0x34
je 0x52a673
cmp dx, 0x2a
je 0x52a673
cmp dx, 0x2b
je 0x52a673
cmp dx, 0x29
je 0x52a673
cmp dx, 0x2d
je 0x52a673
cmp dx, 0x2e
je 0x52a673
mov eax, dword [esi + 0xb0]
mov ebp, 1
cmp eax, ebp
je 0x52a673
mov al, byte [esi + 0x28]
test al, al
jne 0x52a673
mov al, byte [esi + 0x26]
test al, al
jne 0x52a673
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
cmp word [eax + esi + 0x180], 0x1d
jne 0x52a67d
mov byte [esp + 0x12], 0
mov ebp, 1
mov al, byte [esi + 0xcf0]
test al, al
je 0x52a690
mov byte [esi + 0x2f], 1
mov byte [esp + 0x12], 1
mov al, byte [esi + 0x2e]
test al, al
je 0x52a6a2
cmp byte [esp + 0x12], 1
je 0x52a757
mov al, byte [esi + 0x2f]
test al, al
je 0x52a73b
cmp byte [esp + 0x12], 1
jne 0x52a73b
mov byte [0x8d5109], 0
mov ecx, dword [esi + 0x958]
mov al, byte [ecx + 0x36]
and al, 7
cmp al, 2
jne 0x52a757
mov edi, dword [ecx + 0x594]
cmp edi, 4
jne 0x52a6ed
mov ecx, esi
call fcn.00526c80
mov dx, word [0xb70140]
jmp 0x52a757
call fcn.006d1080
cmp eax, 3
mov ecx, esi
jne 0x52a707
call fcn.00526ae0
mov dx, word [0xb70140]
jmp 0x52a757
cmp edi, 5
jne 0x52a71a
call fcn.00526e20
mov dx, word [0xb70140]
jmp 0x52a757
cmp edi, 6
jne 0x52a72d
call fcn.00526950
mov dx, word [0xb70140]
jmp 0x52a757
call fcn.005267c0
mov dx, word [0xb70140]
jmp 0x52a757
mov cl, byte [esi + 0x26]
test cl, cl
je 0x52a74b
test al, al
je 0x52a74b
mov byte [esp + 0x10], 1
mov byte [esp + 0x12], 0
mov byte [0xb6ec2d], 0
cmp byte [esi + 0x2b], 1
jne 0x52b215
cmp dx, bp
je 0x52a7c5
cmp dx, 0x10
je 0x52a7c5
cmp dx, 0x25
je 0x52a7c5
cmp dx, 0x12
je 0x52a7a6
cmp dx, 0x16
je 0x52a7a6
cmp dx, 0xf
jne 0x52a7ca
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
cmp word [ecx + esi + 0x180], bp
jne 0x52a994
mov byte [esp + 0x10], 1
jmp 0x52a994
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
movsx eax, word [eax + esi + 0x180]
dec eax
je 0x52a7c5
sub eax, 0xf
je 0x52a7c5
sub eax, 0x15
jne 0x52a7ca
mov byte [esp + 0x10], 1
cmp dx, 0x35
je 0x52a7e0
cmp dx, 0x37
je 0x52a7e0
cmp dx, 0x41
jne 0x52a958
mov eax, dword [esi + 0x958]
test eax, eax
je 0x52a958
mov cl, byte [eax + 0x36]
and cl, 7
cmp cl, 3
jne 0x52a958
mov ecx, dword [eax + 0x47c]
xor bl, bl
call fcn.00601110
test eax, eax
je 0x52a810
mov bl, 1
cmp word [0xb70140], 0x35
jne 0x52a94c
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
cmp word [edx + esi + 0x180], 4
lea ebp, [edx + esi]
jne 0x52a94c
test bl, bl
jne 0x52a94c
mov edi, dword [esi + 0x958]
mov eax, dword [edi + 0x71c]
test eax, eax
je 0x52a88b
mov ecx, dword [edi + 0x14]
test ecx, ecx
lea edx, [ecx + 0x30]
jne 0x52a85f
lea edx, [edi + 4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x52a86b
lea eax, [ecx + 0x30]
jmp 0x52a86e
add eax, 4
push edx
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.0040fe60
fld dword [esp + 0x20]
fchs
add esp, 0xc
fld dword [esp + 0x18]
fpatan
jmp 0x52a892
mov ecx, edi
call fcn.00441db0
fsub dword [0x858fe4]
fld dword [ebp + 0x230]
fadd dword [0x858cb8]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x52a8b7
fsub dword [0x858cbc]
jmp 0x52a8d4
fld dword [ebp + 0x230]
fsub dword [0x858cb8]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x52a8d4
fadd dword [0x858cbc]
fsub dword [ebp + 0x230]
fabs
fld dword [0x8cc46c]
fmul dword [0x8595ec]
fcompp
fnstsw ax
test ah, 5
jnp 0x52a937
mov eax, dword [edi + 0x14]
test eax, eax
je 0x52a8fd
lea edi, [eax + 0x30]
jmp 0x52a900
add edi, 4
lea ecx, [esi + 0x9a4]
push ecx
lea edx, [esp + 0x18]
push edi
push edx
call fcn.0040fe60
add esp, 0xc
mov ecx, eax
call fcn.004082c0
fld dword [0xb6f0fc]
fadd dword [0x858ca0]
fmul dword [0x858ce8]
fcompp
fnstsw ax
test ah, 5
jp 0x52a93c
mov byte [esp + 0x10], 1
mov al, byte [0xb6ec2e]
test al, al
je 0x52a994
mov byte [esp + 0x10], 0
jmp 0x52a994
mov dx, word [0xb70140]
mov byte [esp + 0x10], 1
cmp dx, 0x30
jne 0x52a976
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov ax, word [eax + esi + 0x180]
cmp ax, 0x31
jmp 0x52a992
cmp dx, 0x31
jne 0x52a994
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
mov ax, word [ecx + esi + 0x180]
cmp ax, 0x30
jne 0x52a9c5
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov ax, word [edx + esi + 0x180]
cmp ax, 0x30
mov dx, word [0xb70140]
jne 0x52a9b9
cmp dx, 0x31
jne 0x52a9c5
cmp ax, 0x31
jne 0x52a9ca
cmp dx, 0x30
je 0x52a9ca
mov byte [esp + 0x10], 1
cmp dx, 1
jne 0x52a9d6
cmp ax, 0x25
jmp 0x52a9e0
cmp dx, 0x25
jne 0x52a9f6
cmp ax, 1
je 0x52a9ec
cmp ax, 0x1d
jne 0x52add6
mov byte [esp + 0x10], 0
jmp 0x52adcb
cmp dx, 0x10
je 0x52aa50
cmp dx, 7
je 0x52aa50
cmp dx, 0x22
je 0x52aa50
cmp dx, 8
je 0x52aa50
cmp dx, 0x33
je 0x52aa50
cmp dx, 0x27
je 0x52aa50
cmp dx, 0x28
je 0x52aa50
cmp dx, 0x34
je 0x52aa50
cmp dx, 0x2a
je 0x52aa50
cmp dx, 0x2b
je 0x52aa50
cmp dx, 0x29
je 0x52aa50
cmp dx, 0x2d
je 0x52aa50
cmp dx, 0x20
je 0x52aa50
cmp dx, 0x21
je 0x52aa50
cmp dx, 0x2e
jne 0x52aa65
mov ecx, dword [esi + 0x958]
mov cl, byte [ecx + 0x36]
and cl, 7
cmp cl, 3
je 0x52add1
cmp dx, 0xf
jne 0x52aaf3
cmp byte [esi + 0x26], 1
jne 0x52adcb
cmp ax, 7
je 0x52aad9
cmp ax, 0x2d
je 0x52aad9
cmp ax, 8
je 0x52aad9
cmp ax, 0x33
je 0x52aad9
cmp ax, 0x22
je 0x52aad9
cmp ax, 0x25
je 0x52aad9
mov cl, byte [esp + 0x11]
test cl, cl
jne 0x52aad9
cmp ax, 0x10
je 0x52aad9
cmp ax, 0x27
je 0x52aad9
cmp ax, 0x28
je 0x52aad9
cmp ax, 0x34
je 0x52aad9
cmp ax, 0x2a
je 0x52aad9
cmp ax, 0x2b
je 0x52aad9
cmp ax, 0x29
je 0x52aad9
cmp ax, 0x2e
jne 0x52add6
mov eax, dword [esi + 0x958]
test eax, eax
je 0x52add6
mov al, byte [eax + 0x36]
and al, 7
cmp al, 2
jmp 0x52adcf
cmp dx, 4
jne 0x52adb3
xor bl, bl
cmp ax, 0x35
jne 0x52abcc
mov ecx, dword [esi + 0x958]
call fcn.005e88e0
test al, al
je 0x52abc5
mov edi, dword [esi + 0x958]
test dword [edi + 0x46c], 0x4000000
jne 0x52abc5
mov ecx, edi
call fcn.00441db0
fsub dword [0x858fe4]
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
fld dword [ecx + esi + 0x230]
fadd dword [0x858cb8]
fld st(1)
fcompp
lea ecx, [ecx + esi + 0x230]
fnstsw ax
test ah, 0x41
jne 0x52ab70
fsub dword [0x858cbc]
jmp 0x52ab89
fld dword [ecx]
fsub dword [0x858cb8]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x52ab89
fadd dword [0x858cbc]
fsub dword [ecx]
fabs
fld dword [0x8cc46c]
fmul dword [0x8595ec]
fcompp
fnstsw ax
test ah, 5
jnp 0x52abab
test byte [edi + 0x46c], 1
jne 0x52abad
mov bl, 1
mov al, byte [0xb6ec2e]
test al, al
mov dx, word [0xb70140]
je 0x52abcc
xor bl, bl
mov byte [esi + 0x28], 1
jmp 0x52abcc
mov dx, word [0xb70140]
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
lea ecx, [eax + esi]
mov ax, word [ecx + 0x180]
cmp ax, 0x10
je 0x52ac62
cmp ax, 7
je 0x52ac62
cmp ax, 0x22
je 0x52ac62
cmp ax, 8
je 0x52ac62
cmp ax, 0x33
je 0x52ac62
cmp ax, 0x1d
je 0x52ac62
cmp ax, 0x20
je 0x52ac62
cmp ax, 0x21
je 0x52ac62
cmp ax, 0x1e
je 0x52ac62
cmp ax, 0x27
je 0x52ac62
cmp ax, 0x28
je 0x52ac62
cmp ax, 0x34
je 0x52ac62
cmp ax, 0x2a
je 0x52ac62
cmp ax, 0x2b
je 0x52ac62
cmp ax, 0x29
je 0x52ac62
cmp ax, 0x2d
je 0x52ac62
cmp ax, 1
je 0x52ac62
cmp ax, 0x25
je 0x52ac62
cmp ax, 0x2e
je 0x52ac62
test bl, bl
jne 0x52ac62
mov bl, byte [esp + 0x13]
test bl, bl
je 0x52add6
mov bl, byte [esi + 0x28]
test bl, bl
jne 0x52add6
cmp ax, 7
je 0x52acbb
cmp ax, 8
je 0x52acbb
cmp ax, 0x33
je 0x52acbb
cmp ax, 0x22
je 0x52acbb
cmp ax, 0x10
je 0x52acbb
cmp ax, 0x27
je 0x52acbb
cmp ax, 0x28
je 0x52acbb
cmp ax, 0x34
je 0x52acbb
cmp ax, 0x2a
je 0x52acbb
cmp ax, 0x2b
je 0x52acbb
cmp ax, 0x29
je 0x52acbb
cmp ax, 0x2d
je 0x52acbb
cmp ax, 0x2e
jne 0x52acef
mov edx, dword [ecx + 0x308]
mov eax, dword [ecx + 0x304]
push edx
push eax
call fcn.0053cc70
fsub dword [0x858fe4]
mov ecx, dword [esi + 0x958]
add esp, 8
fst dword [ecx + 0x558]
mov edx, dword [esi + 0x958]
fstp dword [edx + 0x55c]
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
add eax, esi
mov byte [esi + 0x37], 1
cmp word [eax + 0x180], 0x25
mov byte [esp + 0x10], 1
jne 0x52ad98
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x14]
add esp, 4
test ecx, ecx
je 0x52ad28
lea eax, [ecx + 0x30]
jmp 0x52ad2b
add eax, 4
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
push eax
lea edx, [ecx + esi + 0x310]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.0040fe60
add esp, 0xc
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], 0
call fcn.0059c910
push 0x3f800000
push 0x3a83126f
mov dword [esp + 0x1c], 0x3a83126f
mov dword [esp + 0x20], 0x3f800000
call fcn.0053cc70
movzx ecx, byte [esi + 0x59]
mov dx, word [0xb70140]
add esp, 8
imul ecx, ecx, 0x238
fstp dword [ecx + esi + 0x210]
jmp 0x52add6
mov edx, dword [eax + 0x308]
mov eax, dword [eax + 0x304]
push edx
push eax
call fcn.0053cc70
fadd dword [0x858cb8]
jmp 0x52ad7b
cmp dx, 0x26
je 0x52add1
cmp dx, 0x20
je 0x52add1
cmp dx, 0x21
je 0x52add1
cmp dx, 0x1d
je 0x52add1
cmp ax, 0x1d
jne 0x52add6
mov byte [esp + 0x10], 1
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov bp, word [eax + esi + 0x180]
cmp dx, bp
lea edi, [eax + esi]
je 0x52adff
mov eax, dword [edi + 0x390]
test eax, eax
jne 0x52adff
mov byte [esp + 0x10], 1
mov bl, byte [esi + 0x26]
test bl, bl
je 0x52aec8
mov eax, dword [esi + 0x81c]
test eax, eax
je 0x52ae46
mov al, byte [eax + 0x4c]
cmp al, 2
je 0x52ae23
cmp al, 3
je 0x52ae23
cmp al, 4
jne 0x52ae46
mov eax, dword [esi + 0x958]
mov cl, byte [eax + 0x36]
and cl, 7
cmp cl, 2
jne 0x52ae46
cmp word [eax + 0x22], 0x1a7
jne 0x52ae46
cmp dx, bp
je 0x52ae46
mov byte [esp + 0x10], 1
mov ecx, dword [edi + 0x390]
test ecx, ecx
je 0x52aec8
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x52ae5c
add eax, 0x30
jmp 0x52ae5f
lea eax, [ecx + 4]
fld dword [eax]
fsub dword [esi + 0x86c]
fld dword [eax + 4]
fsub dword [esi + 0x870]
fld dword [eax + 8]
mov eax, dword [ecx + 0x14]
test eax, eax
fsub dword [esi + 0x874]
je 0x52ae85
add eax, 0x30
jmp 0x52ae88
lea eax, [ecx + 4]
fld dword [eax]
fsub dword [edi + 0x310]
fld dword [eax + 4]
fsub dword [edi + 0x314]
fld dword [eax + 8]
fsub dword [edi + 0x318]
fxch st(2)
fmul st(5)
fxch st(2)
fmul st(3)
faddp st(2)
fmul st(3)
faddp st(1)
fcomp dword [0x858b50]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x52aec8
mov byte [esp + 0x10], 1
cmp dx, bp
je 0x52aedc
mov al, byte [esi + 0x58]
test al, al
mov al, byte [esp + 0x10]
je 0x52af23
cmp al, 1
je 0x52af2b
mov al, byte [esi + 0x58]
test al, al
je 0x52b1d1
cmp dx, bp
je 0x52b1d1
mov al, byte [esi + 0x3a]
test al, al
jne 0x52b1b6
mov al, byte [esi + 0x2b]
test al, al
je 0x52b1b6
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x14]
add esp, 4
test ecx, ecx
je 0x52b110
lea eax, [ecx + 0x30]
jmp 0x52b113
cmp al, 1
jne 0x52b0f8
test bl, bl
je 0x52af36
mov al, byte [esi + 0x28]
test al, al
je 0x52af89
cmp dx, 4
je 0x52af89
cmp dx, 0x22
je 0x52af89
cmp dx, 7
je 0x52af89
cmp dx, 8
je 0x52af89
cmp dx, 0x33
je 0x52af89
cmp dx, 0x2e
je 0x52af89
cmp dx, 0xb
je 0x52af89
cmp dx, 0x10
je 0x52af89
cmp dx, 0x1c
je 0x52af89
cmp dx, 0x23
je 0x52af89
mov al, byte [0xb6ec2e]
test al, al
jne 0x52af89
mov ecx, esi
call fcn.0050bd40
mov dx, word [0xb70140]
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov word [eax + esi + 0x180], dx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
lea eax, [edx + esi + 0x2c8]
lea ecx, [esi + 0x860]
mov edx, dword [ecx]
mov byte [esi + 0x2a], 1
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov ecx, dword [edx + esi + 0x390]
test ecx, ecx
lea eax, [edx + esi + 0x390]
je 0x52afe8
push eax
call fcn.00571a00
movzx eax, byte [esi + 0x59]
mov ecx, dword [esi + 0x958]
imul eax, eax, 0x238
mov dword [eax + esi + 0x390], ecx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov ecx, dword [edx + esi + 0x390]
lea eax, [edx + esi + 0x390]
push eax
call fcn.00571b70
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea edx, [ecx + esi + 0x2d4]
lea eax, [esi + 0x86c]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
lea eax, [edx + esi + 0x2e0]
lea ecx, [esi + 0x878]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
movzx edx, byte [esi + 0x59]
mov al, byte [esi + 0x2c]
imul edx, edx, 0x238
mov byte [edx + esi + 0x176], al
movzx eax, byte [esi + 0x59]
lea ecx, [eax + 1]
and ecx, 0x80000001
jns 0x52b093
dec ecx
or ecx, 0xfffffffe
inc ecx
imul ecx, ecx, 0x238
imul eax, eax, 0x238
lea edx, [ecx + esi + 0x2ec]
mov ecx, dword [edx]
lea eax, [eax + esi + 0x2ec]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
movzx edx, byte [esi + 0x59]
mov eax, dword [esi + 0xb8]
imul edx, edx, 0x238
mov ecx, dword [esi + 0xcc]
mov dword [esi + 0xc0], eax
mov dword [esi + 0xd4], ecx
mov byte [esi + 0x58], 0
mov byte [esi + 0x4f], 0
mov byte [esi + 0x32], 0
mov byte [edx + esi + 0x17e], 1
jmp 0x52b4fb
mov al, byte [esi + 0x3a]
test al, al
jne 0x52b4fb
push edx
mov ecx, esi
call fcn.00515200
jmp 0x52b4fb
add eax, 4
fld dword [eax]
push 0xffffffffffffffff
fsub dword [esi + 0x9a4]
fstp dword [esp + 0x18]
call fcn.0056e210
mov ecx, dword [eax + 0x14]
add esp, 4
test ecx, ecx
je 0x52b135
lea eax, [ecx + 0x30]
jmp 0x52b138
add eax, 4
fld dword [eax + 4]
push 0xffffffffffffffff
fsub dword [esi + 0x9a8]
fstp dword [esp + 0x1c]
call fcn.0056e210
mov ecx, dword [eax + 0x14]
add esp, 4
test ecx, ecx
je 0x52b15b
lea eax, [ecx + 0x30]
jmp 0x52b15e
add eax, 4
fld dword [eax + 8]
mov eax, dword [esi + 0x958]
test eax, eax
fsub dword [esi + 0x9ac]
fstp dword [esp + 0x1c]
je 0x52b1ad
mov al, byte [eax + 0x36]
and al, 7
cmp al, 3
jne 0x52b1ad
lea ecx, [esp + 0x14]
call fcn.004082c0
fcomp dword [0x863260]
fnstsw ax
test ah, 0x41
jne 0x52b1ad
mov dx, word [0xb70140]
cmp dx, 0xb
je 0x52b1a7
cmp dx, 0x1c
jne 0x52b1b6
mov byte [esi + 0x3a], 1
jmp 0x52b1b6
xor edx, edx
mov dx, word [0xb70140]
cmp byte [esi + 0x3a], 1
je 0x52b4fb
push edx
mov ecx, esi
mov byte [esi + 0x4f], 1
call fcn.00515200
jmp 0x52b4fb
cmp dx, 0xf
jne 0x52b4fb
mov ecx, dword [esi + 0x958]
cmp ecx, dword [edi + 0x390]
je 0x52b4fb
test bl, bl
je 0x52b4fb
test al, al
mov ecx, esi
push 0xf
jne 0x52b207
call fcn.00515200
jmp 0x52b4fb
mov byte [esi + 0x4f], 1
call fcn.00515200
jmp 0x52b4fb
mov al, byte [esi + 0x41]
xor bl, bl
cmp al, 1
mov byte [esp + 0x13], bl
je 0x52b22c
cmp byte [esi + 0x42], 1
jne 0x52b2d4
cmp dx, 0x10
jne 0x52b251
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
cmp word [eax + esi + 0x180], dx
je 0x52b2d4
mov bl, 1
jmp 0x52b2d4
mov ax, word [esi + 0x830]
cmp ax, 7
je 0x52b270
cmp ax, 0x10
je 0x52b270
cmp ax, 8
je 0x52b270
cmp ax, 0x33
jne 0x52b294
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540670
test al, al
je 0x52b294
mov al, byte [esi + 0x42]
test al, al
je 0x52b294
mov bl, 1
mov byte [esp + 0x13], bl
jmp 0x52b2cd
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
mov dx, word [ecx + esi + 0x180]
cmp dx, word [esi + 0xc38]
je 0x52b2cd
push 0
mov byte [esi + 0x32], 1
mov word [esi + 0xc3c], 2
call fcn.0053fb70
add esp, 4
and byte [eax + 0x10e], 0xfe
mov dx, word [0xb70140]
mov al, byte [esi + 0x58]
test al, al
jne 0x52b30a
cmp byte [esi + 0x32], 1
jne 0x52b306
cmp word [esi + 0xc3c], bp
jne 0x52b306
xor eax, eax
mov ax, word [esi + 0xc38]
mov ecx, esi
mov word [0xb70140], ax
push eax
call fcn.00515200
jmp 0x52b4fb
test al, al
je 0x52b339
cmp byte [esi + 0x32], 1
jne 0x52b349
cmp word [esi + 0xc3c], bp
jne 0x52b339
xor eax, eax
mov ax, word [esi + 0xc38]
mov ecx, esi
mov word [0xb70140], ax
mov byte [esi + 0x4f], 1
push eax
call fcn.00515200
jmp 0x52b4fb
cmp byte [esi + 0x32], 1
jne 0x52b349
cmp word [esi + 0xc3c], 2
je 0x52b351
test bl, bl
je 0x52b4fb
cmp byte [esi + 0x41], 1
mov byte [esi + 0x58], 0
mov byte [esi + 0x4f], 0
jne 0x52b379
cmp dx, 0x10
jne 0x52b379
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov word [eax + esi + 0x180], dx
jmp 0x52b3b5
mov al, byte [esp + 0x13]
test al, al
je 0x52b39c
movzx ecx, byte [esi + 0x59]
mov dx, word [esi + 0x830]
imul ecx, ecx, 0x238
mov word [ecx + esi + 0x180], dx
jmp 0x52b3b5
movzx eax, byte [esi + 0x59]
mov cx, word [esi + 0xc38]
imul eax, eax, 0x238
mov word [eax + esi + 0x180], cx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov byte [esi + 0x2a], 1
mov byte [edx + esi + 0x17e], 1
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea edx, [ecx + esi + 0x2c8]
lea eax, [esi + 0x860]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea eax, [ecx + esi + 0x390]
mov ecx, dword [eax]
test ecx, ecx
je 0x52b40f
push eax
call fcn.00571a00
movzx edx, byte [esi + 0x59]
mov eax, dword [esi + 0x958]
imul edx, edx, 0x238
mov dword [edx + esi + 0x390], eax
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea eax, [ecx + esi + 0x390]
mov ecx, dword [eax]
push eax
call fcn.00571b70
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
lea ecx, [eax + esi + 0x2d4]
lea edx, [esi + 0x86c]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
lea edx, [ecx + esi + 0x2e0]
lea eax, [esi + 0x878]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
movzx ecx, byte [esi + 0x59]
mov dl, byte [esi + 0x2c]
imul ecx, ecx, 0x238
mov byte [ecx + esi + 0x176], dl
movzx eax, byte [esi + 0x59]
lea ecx, [eax + 1]
and ecx, 0x80000001
jns 0x52b4b5
dec ecx
or ecx, 0xfffffffe
inc ecx
imul ecx, ecx, 0x238
imul eax, eax, 0x238
lea edx, [ecx + esi + 0x2ec]
mov ecx, dword [edx]
lea eax, [eax + esi + 0x2ec]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xcc]
mov byte [esi + 0x2a], 1
mov dword [esi + 0xc0], eax
mov dword [esi + 0xd4], ecx
movzx edx, byte [esi + 0x59]
nop
jmp 0x403cba
lea eax, [edx + esi + 0x390]
mov byte [esi + 0x32], 0
cmp dword [eax], 0
jne 0x52b53b
mov ecx, dword [esi + 0x958]
mov dword [eax], ecx
movzx edx, byte [esi + 0x59]
imul edx, edx, 0x238
mov ecx, dword [edx + esi + 0x390]
lea eax, [edx + esi + 0x390]
push eax
call fcn.00571b70
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
mov ax, word [eax + esi + 0x180]
cmp ax, 0x11
je 0x52b5a8
mov ecx, dword [esi + 0x958]
mov dl, byte [ecx + 0x36]
and dl, 7
cmp dl, 3
jne 0x52b58e
cmp ax, 0x10
je 0x52b5a8
cmp ax, 7
je 0x52b5a8
cmp ax, 0x22
je 0x52b5a8
cmp ax, 0x2e
je 0x52b5a8
cmp ax, 0x2d
je 0x52b5a8
cmp ax, 8
je 0x52b5a8
cmp ax, 0x33
je 0x52b5a8
push 0xffffffffffffffff
call fcn.0056e210
mov ecx, dword [eax + 0x1c]
add eax, 0x1c
add esp, 4
or ecx, 0x80
mov dword [eax], ecx
jmp 0x52b5f9
push 0xffffffffffffffff
call fcn.0056e210
mov cl, byte [eax + 0x1c]
add esp, 4
test cl, cl
jns 0x52b5f9
push 0xffffffffffffffff
call fcn.0056e210
mov ebp, dword [eax + 0x1c]
add eax, 0x1c
and ebp, 0xffffff7f
push 0xffffffffffffffff
mov dword [eax], ebp
call fcn.0056e210
mov eax, dword [eax + 0x47c]
add esp, 8
push 0
mov ecx, eax
call fcn.00600ff0
test eax, eax
je 0x52b5f9
mov eax, dword [eax + 8]
test eax, eax
je 0x52b5f9
and dword [eax + 0x1c], 0xffffff7f
movzx eax, byte [esi + 0x59]
imul eax, eax, 0x238
cmp word [eax + esi + 0x180], 0xf
jne 0x52b636
push 0xffffffffffffffff
call fcn.0056e210
movzx ecx, byte [0x8cc380]
mov ebx, dword [eax + 0x1c]
add eax, 0x1c
shl ecx, 7
xor ecx, ebx
and ecx, 0x80
mov edx, ebx
add esp, 4
xor edx, ecx
mov dword [eax], edx
mov al, byte [esp + 0x12]
xor bl, bl
test al, al
mov edi, 2
jne 0x52b680
cmp dword [esi + 0xb0], edi
jne 0x52b680
mov ecx, esi
call fcn.0050bab0
mov bl, 1
push 0xffffffffffffffff
mov byte [esi + 0x1a], bl
call fcn.0056e210
add esp, 4
test eax, eax
je 0x52b680
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
push edx
push eax
call fcn.0053cc70
fstp dword [esi + 0x120]
add esp, 8
movzx ecx, byte [esi + 0x59]
imul ecx, ecx, 0x238
mov ax, word [ecx + esi + 0x180]
mov ecx, dword [esp + 0x94]
movsx edx, ax
cmp ecx, edx
jne 0x52b6b0
test bl, bl
jne 0x52b6b0
cmp ax, 4
je 0x52b6b0
cmp ax, 0x12
jne 0x52b71b
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540530
test al, al
je 0x52b71b
cmp byte [0xa43088], 1
je 0x52b71b
cmp byte [esi + 0x2b], 1
je 0x52b6dc
cmp dword [esi + 0xb0], edi
jne 0x52b71b
mov al, byte [esi + 0x3d]
test al, al
jne 0x52b71b
cmp dword [esi + 0xb0], edi
jne 0x52b708
cmp byte [0xb6ec34], 1
jne 0x52b71b
push 0
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x10e], 0
jne 0x52b71b
push 0x3f800000
push 0
mov ecx, 0xb6bc90
push 0x20
call fcn.00506ea0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret