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

Disassembly:
push ebp
lea ebp, [esp - 0x44]
sub esp, 0x17c
mov eax, dword [0x64786c]
xor eax, ebp
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x58]
mov edx, dword [ebp + 0x64]
push ebx
mov ebx, dword [ebp + 0x4c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x78]
push esi
xor esi, esi
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x5c]
mov dword [ebp - 0x30], eax
or eax, 0xffffffff
cmp ecx, 0x4fc
push edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x60], esi
jle 0x565b89
mov ecx, 0x4fc
mov edx, dword [ebp + 0x54]
cmp edx, esi
mov dword [ebp - 4], ecx
mov dword [ebx + 0x46d8], esi
jle 0x567b73
cmp ecx, esi
jle 0x567b73
cmp ecx, 1
jne 0x565bc1
lea ecx, [edx + edx*4]
add ecx, ecx
cmp dword [ebx + 0x90], ecx
jne 0x565bc1
mov eax, 0xfffffffe
jmp 0x567b73
mov eax, dword [ebx + 4]
add eax, ebx
mov dword [ebp - 0x64], eax
mov eax, dword [ebx]
add eax, ebx
cmp dword [ebx + 0x6c], 0x803
mov dword [ebp - 0x28], eax
jne 0x565bde
mov dword [ebp - 0x48], esi
jmp 0x565be4
mov edx, dword [ebx + 0x74]
mov dword [ebp - 0x48], edx
mov ecx, dword [ebx + 0xa8]
mov edi, dword [ebp + 0x60]
cmp edi, ecx
jl 0x565bf6
mov edi, ecx
mov dword [ebp + 0x60], edi
lea ecx, [ebp - 0x6c]
push ecx
push 0x271f
push eax
call fcn.0056f5c0
add esp, 0xc
cmp dword [ebx + 0x2c], 7
mov dword [ebp], esi
jl 0x565d08
cmp dword [ebx + 0x90], 0x3e80
jl 0x565d08
mov edx, dword [ebx + 0x70]
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp - 0x40]
push edi
push edx
push eax
push ecx
call fcn.00565780
mov edx, dword [ebx + 0x1dd4]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x1dd8]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x30]
lea ecx, [ebp]
push ecx
mov ecx, dword [ebp + 0x70]
push edx
mov edx, dword [ebp + 0x6c]
push edi
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x90]
push eax
mov eax, dword [ebp + 0x74]
push eax
mov eax, dword [ebp + 0x54]
push ecx
mov ecx, dword [ebp + 0x68]
push edx
mov edx, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x6c]
push ecx
push edx
push eax
lea ecx, [ebx + 0xbc]
push ecx
call fcn.00573160
add esp, 0x40
cmp dword [ebp - 0x60], esi
jne 0x565d29
fld dword [0x603d34]
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 5
jp 0x565d1f
fld dword [ebx + 0x46d0]
mov edx, dword [ebx + 0x70]
fmul dword [0x603d64]
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp + 0x54]
push edx
push eax
fstp dword [ebp - 0x30]
mov eax, dword [ebx + 0xb4]
mov ecx, edi
call fcn.005657d0
fcomp dword [ebp - 0x30]
add esp, 8
fnstsw ax
test ah, 5
jp 0x565ce8
fld dword [ebx + 0x46d0]
fmul dword [0x603d64]
fstp dword [ebx + 0x46d0]
jmp 0x565d1f
mov ecx, dword [ebx + 0x70]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0xb4]
push ecx
push edx
mov ecx, edi
call fcn.005657d0
fstp dword [ebx + 0x46d0]
add esp, 8
jmp 0x565d1f
cmp dword [ebx + 0x1de0], esi
je 0x565d1f
lea eax, [ebx + 0xbc]
push eax
call fcn.00570da0
add esp, 4
mov dword [ebx + 0x8c], 0xffffffff
mov dword [ebx + 0x46c8], esi
cmp dword [ebp], esi
je 0x565dd2
cmp dword [ebx + 0x7c], 0xfffffc18
jne 0x565d88
mov eax, dword [ebx + 0x3794]
cmp eax, esi
jne 0x565d50
fld dword [ebp + 0x14]
jmp 0x565d5f
cmp eax, 0x3ea
jne 0x565d5c
fld dword [ebp + 0x1c]
jmp 0x565d5f
fld dword [ebp + 0x18]
fld1
sub esp, 8
fsubrp st(1)
fmul dword [0x603d60]
fadd dword [0x631728]
fstp qword [esp]
call fcn.0059eb80
add esp, 8
call fcn.0059c610
mov dword [ebx + 0x8c], eax
mov eax, dword [ebp + 0x20]
cmp eax, 0xc
jg 0x565d9c
mov dword [ebx + 0x46c8], 0x44d
jmp 0x565dd2
cmp eax, 0xe
jg 0x565dad
mov dword [ebx + 0x46c8], 0x44e
jmp 0x565dd2
cmp eax, 0x10
jg 0x565dbe
mov dword [ebx + 0x46c8], 0x44f
jmp 0x565dd2
xor ecx, ecx
cmp eax, 0x12
setg cl
add ecx, 0x450
mov dword [ebx + 0x46c8], ecx
cmp dword [ebx + 0x70], 2
jne 0x565dfe
cmp dword [ebx + 0x78], 1
je 0x565dfe
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp + 0x54]
lea edx, [ebx + 0x37b4]
push edx
mov edx, dword [ebp - 0x40]
push eax
push ecx
push edx
call fcn.005650a0
add esp, 0x10
jmp 0x565e00
fldz
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x54]
push eax
mov eax, ebx
call fcn.00564b80
mov esi, dword [ebx + 0x90]
mov edi, eax
mov eax, esi
cdq
idiv dword [ebp + 0x54]
add esp, 4
cmp dword [ebx + 0x94], 0
mov dword [ebx + 0xa0], edi
mov ecx, eax
mov dword [ebp - 0x20], ecx
jne 0x565f15
lea eax, [esi + esi*2]
add eax, eax
add eax, eax
cdq
idiv dword [ebp + 0x54]
mov esi, eax
lea eax, [edi + edi*2]
add eax, eax
add eax, eax
cdq
and edx, 7
add eax, edx
mov edi, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sar edi, 3
add eax, edi
cdq
idiv esi
cmp eax, dword [ebp - 4]
mov edi, eax
jl 0x565e6c
mov edi, dword [ebp - 4]
mov edx, edi
imul edx, esi
add edx, edx
add edx, edx
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, 1
mov dword [ebx + 0xa0], eax
jge 0x565f0e
mov dword [ebp - 4], 1
mov edx, dword [ebx + 0x37a0]
fstp st(0)
mov esi, dword [ebx + 0x3790]
xor eax, eax
mov edi, 0x44d
cmp edx, eax
je 0x565eb4
mov edi, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x58], eax
cmp esi, eax
jne 0x565ec3
mov esi, 0x3e8
cmp ecx, 0x64
jle 0x565ecd
mov esi, 0x3ea
cmp ecx, 0x19
jne 0x567a90
cmp esi, 0x3e8
je 0x565ef8
mov dword [ebp - 0x20], 0x32
mov dword [ebp - 8], 1
cmp esi, 0x3e8
jne 0x567aef
cmp edi, 0x44f
jle 0x567b19
mov edi, 0x44f
jmp 0x567b19
mov edx, edi
mov dword [ebp - 4], edx
jmp 0x565f18
mov edx, dword [ebp - 4]
cmp edx, 3
jl 0x565e99
mov esi, dword [ebx + 0xa0]
lea eax, [ecx + ecx*2]
add eax, eax
add eax, eax
add eax, eax
cmp esi, eax
jl 0x565e99
cmp ecx, 0x32
jge 0x565f59
mov eax, ecx
imul eax, edx
cmp eax, 0x12c
jl 0x565e99
cmp esi, 0x960
jl 0x565e99
mov edi, dword [ebx + 0x28]
mov eax, ecx
imul eax, edx
add eax, eax
add eax, eax
add eax, eax
cmp ecx, 0x32
mov dword [ebp - 0x30], eax
jle 0x565f84
mov eax, dword [ebx + 0x70]
lea edx, [eax + eax*4]
add ecx, 0xffffffce
lea eax, [edx*8 + 0x14]
imul eax, ecx
sub esi, eax
cmp dword [ebx + 0x94], 0
jne 0x565f9f
mov eax, 0xd5555555
imul esi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add esi, ecx
mov ecx, dword [ebx + 0x2c]
add ecx, 0x5a
imul ecx, esi
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, edi
lea edx, [edi + edi*2]
lea esi, [edx*4 + 0x14]
cdq
idiv esi
sub ecx, eax
mov eax, dword [ebx + 0x7c]
cmp eax, 0xbb9
jne 0x565fde
mov esi, 0x7f
jmp 0x566024
cmp eax, 0xbba
jne 0x565fe9
xor esi, esi
jmp 0x566024
mov esi, dword [ebx + 0x8c]
test esi, esi
jl 0x566011
imul esi, esi, 0x147
sar esi, 8
cmp dword [ebx + 0x6c], 0x801
jne 0x566024
cmp esi, 0x73
jl 0x566024
mov esi, 0x73
jmp 0x566024
mov esi, dword [ebx + 0x6c]
sub esi, 0x800
neg esi
sbb esi, esi
and esi, 0xffffffbd
add esi, 0x73
mov eax, dword [ebx + 0x78]
cmp eax, 0xfffffc18
je 0x566034
cmp dword [ebx + 0x70], 2
je 0x566082
mov eax, dword [ebx + 0x70]
cmp eax, 2
jne 0x566082
mov eax, esi
imul eax, esi
imul eax, eax, 0x7d0
sar eax, 0xe
add eax, 0x4268
cmp dword [ebx + 0x3770], 2
jne 0x56606d
sub eax, 0x3e8
xor edx, edx
cmp ecx, eax
setg dl
inc edx
mov dword [ebx + 0x3770], edx
jmp 0x566088
add eax, 0x3e8
xor edx, edx
cmp ecx, eax
setg dl
inc edx
mov dword [ebx + 0x3770], edx
jmp 0x566088
mov dword [ebx + 0x3770], eax
mov edx, dword [ebp - 0x20]
cmp edx, 0x32
mov ecx, dword [ebx + 0xa0]
mov dword [ebp - 8], ecx
jle 0x5660b4
mov eax, dword [ebx + 0x3770]
lea eax, [eax + eax*4]
add edx, 0xffffffce
lea eax, [eax*8 + 0x14]
imul eax, edx
sub ecx, eax
mov dword [ebp - 8], ecx
cmp dword [ebx + 0x94], 0
jne 0x5660d2
mov eax, 0xd5555555
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov dword [ebp - 8], ecx
mov ecx, dword [ebx + 0x2c]
add ecx, 0x5a
imul ecx, dword [ebp - 8]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, edi
lea edx, [edi + edi*2]
lea edi, [edx*4 + 0x14]
cdq
idiv edi
sub ecx, eax
cmp dword [ebx + 0xb8], 0
mov dword [ebp - 0x54], ecx
je 0x566120
cmp dword [ebp], 0
jne 0x566120
cmp dword [ebp - 0x60], 0
jne 0x566120
mov eax, 1
jmp 0x566122
xor eax, eax
cmp dword [ebx + 0x6c], 0x803
mov dword [ebp - 0x44], eax
mov dword [ebx + 0x38], eax
jne 0x566140
mov dword [ebx + 0x3790], 0x3ea
jmp 0x566244
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
jne 0x56623e
fld1
fsub st(1)
fld st(0)
fld dword [0x603d5c]
fmul st(1), st(0)
fmul st(3)
faddp st(1)
call fcn.0059c610
fmul dword [0x603d58]
fxch st(1)
mov edi, eax
fmul dword [0x603d54]
faddp st(1)
call fcn.0059c610
sub eax, edi
imul eax, esi
imul eax, esi
sar eax, 0xe
add eax, edi
cmp dword [ebx + 0x6c], 0x800
jne 0x56619a
add eax, 0x1f40
mov ecx, dword [ebx + 0x3794]
cmp ecx, 0x3ea
jne 0x5661af
sub eax, 0xfa0
jmp 0x5661b8
test ecx, ecx
jle 0x5661b8
add eax, 0xfa0
xor ecx, ecx
cmp dword [ebp - 0x54], eax
setge cl
cmp dword [ebx + 0x30], 0
lea ecx, [ecx + ecx + 0x3e8]
mov dword [ebx + 0x3790], ecx
je 0x5661ec
mov edx, 0x80
sub edx, esi
sar edx, 4
cmp dword [ebx + 0x28], edx
jle 0x5661ec
mov dword [ebx + 0x3790], 0x3e8
cmp dword [ebp - 0x44], 0
je 0x566201
cmp esi, 0x64
jle 0x566201
mov dword [ebx + 0x3790], 0x3e8
mov eax, dword [ebx + 0x90]
xor ecx, ecx
cmp dword [ebp - 0x20], 0x32
lea edi, [eax*8]
setle cl
dec ecx
and ecx, 0xbb8
add ecx, 0x1770
imul ecx, dword [ebp + 0x54]
mov eax, ecx
cdq
idiv edi
cmp dword [ebp - 4], eax
jge 0x566246
mov dword [ebx + 0x3790], 0x3ea
jmp 0x566246
mov dword [ebx + 0x3790], eax
fstp st(0)
mov ecx, 0x3ea
cmp dword [ebx + 0x3790], ecx
je 0x566273
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0x54], eax
jge 0x566273
mov dword [ebx + 0x3790], ecx
cmp dword [ebx + 0xb0], 0
je 0x566282
mov dword [ebx + 0x3790], ecx
mov edi, dword [ebx + 0x3794]
test edi, edi
jle 0x5662eb
mov eax, dword [ebx + 0x3790]
cmp eax, ecx
je 0x56629e
cmp edi, ecx
je 0x5662a2
cmp eax, ecx
jne 0x5662eb
cmp edi, ecx
je 0x5662eb
xor edx, edx
cmp eax, 0x3ea
setne dl
mov ecx, 1
mov dword [ebp - 0xc], ecx
mov eax, edx
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x5662f0
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0x54], eax
jl 0x5662e2
mov dword [ebx + 0x3790], edi
mov dword [ebp - 0x7c], ecx
jmp 0x5662f0
mov dword [ebp - 0xc], 0
jmp 0x5662f0
mov ecx, 1
cmp dword [ebx + 0x3770], ecx
jne 0x56632a
mov eax, 2
cmp dword [ebx + 0x3798], eax
jne 0x56632a
cmp dword [ebx + 0x44], 0
jne 0x56632a
cmp dword [ebx + 0x3790], 0x3ea
je 0x56632a
cmp edi, 0x3ea
je 0x56632a
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x3770], eax
jmp 0x566331
mov dword [ebx + 0x44], 0
mov eax, dword [ebx + 0x28]
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebx + 0x3770]
push eax
mov eax, dword [ebx + 0x2c]
push eax
mov eax, dword [ebx + 0x94]
push eax
mov eax, dword [ebx + 0xa0]
push eax
mov eax, dword [ebp - 0x20]
call fcn.005656a0
add esp, 0x10
mov dword [ebp - 0x54], eax
cmp edi, 0x3ea
je 0x566397
mov eax, dword [ebx + 0x3794]
cmp eax, 0x3ea
jne 0x566397
mov edx, dword [ebx + 0xb4]
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x138]
push ecx
push edx
push eax
call fcn.00570970
add esp, 0xc
mov dword [ebp - 0x74], 1
cmp dword [ebx + 0x3790], 0x3ea
je 0x5663b6
cmp dword [ebx + 0x37ac], 0
jne 0x5663b6
cmp dword [ebx + 0x54], 0
je 0x56651d
cmp dword [ebx + 0x70], 2
mov dword [ebp - 0x24], 0x451
jne 0x5663d5
cmp dword [ebx + 0x78], 1
je 0x5663d5
mov eax, 0x603c84
mov ecx, 0x603ca4
jmp 0x5663df
mov eax, 0x603c44
mov ecx, 0x603c64
mov edx, dword [ecx]
mov edi, dword [eax]
sub edi, edx
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov dword [ebp - 0xd4], edi
mov edx, dword [ecx + 4]
mov edi, dword [eax + 4]
sub edi, edx
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov edx, dword [ecx + 8]
mov dword [ebp - 0xd0], edi
mov edi, dword [eax + 8]
sub edi, edx
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xcc], edi
mov edi, dword [eax + 0xc]
sub edi, edx
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xc8], edi
mov edi, dword [eax + 0x10]
sub edi, edx
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0xc4], edi
mov edi, dword [eax + 0x14]
sub edi, edx
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0xc0], edi
mov edi, dword [eax + 0x18]
sub edi, edx
mov ecx, dword [ecx + 0x1c]
imul edi, esi
imul edi, esi
sar edi, 0xe
add edi, edx
mov edx, dword [eax + 0x1c]
sub edx, ecx
imul edx, esi
imul edx, esi
sar edx, 0xe
add edx, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xbc], edi
mov edi, dword [ebx + 0x37ac]
mov dword [ebp - 0xb8], edx
lea eax, [ebp - 0xb8]
mov edx, dword [eax - 4]
mov esi, dword [eax]
test edi, edi
jne 0x5664cb
cmp dword [ebx + 0x37a4], ecx
jl 0x5664c9
sub edx, esi
jmp 0x5664cb
add edx, esi
cmp dword [ebp - 0x54], edx
jge 0x5664dc
dec ecx
sub eax, 8
cmp ecx, 0x44d
jg 0x5664b4
cmp ecx, 0x44e
jne 0x5664e9
mov ecx, 0x44f
mov dword [ebx + 0x37a4], ecx
mov dword [ebx + 0x37a0], ecx
test edi, edi
jne 0x56651d
mov eax, dword [ebx + 0x3790]
cmp eax, 0x3ea
je 0x56651d
cmp dword [ebx + 0x58], edi
jne 0x56651d
cmp ecx, 0x44f
jle 0x56651d
mov dword [ebx + 0x37a0], 0x44f
mov eax, dword [ebx + 0x84]
cmp dword [ebx + 0x37a0], eax
lea esi, [ebx + 0x37a0]
jle 0x566533
mov dword [esi], eax
mov edx, dword [ebx + 0x80]
cmp edx, 0xfffffc18
je 0x566543
mov dword [esi], edx
cmp dword [ebx + 0x3790], 0x3ea
je 0x566568
cmp dword [ebp - 0x30], 0x3a98
jge 0x566568
mov eax, dword [esi]
cmp eax, 0x44f
jl 0x566566
mov eax, 0x44f
mov dword [esi], eax
mov eax, dword [ebx + 0x90]
cmp eax, 0x5dc0
jg 0x566583
cmp dword [esi], 0x450
jle 0x566583
mov dword [esi], 0x450
cmp eax, 0x3e80
jg 0x566598
cmp dword [esi], 0x44f
jle 0x566598
mov dword [esi], 0x44f
cmp eax, 0x2ee0
jg 0x5665ad
cmp dword [esi], 0x44e
jle 0x5665ad
mov dword [esi], 0x44e
cmp eax, 0x1f40
jg 0x5665c2
cmp dword [esi], 0x44d
jle 0x5665c2
mov dword [esi], 0x44d
mov ecx, dword [ebx + 0x46c8]
test ecx, ecx
je 0x566661
cmp edx, 0xfffffc18
jne 0x566661
mov eax, dword [ebx + 0x3770]
mov edi, dword [ebp - 0x54]
mov edx, eax
imul edx, edx, 0x4650
cmp edi, edx
jg 0x566604
cmp dword [ebx + 0x3790], 0x3ea
jne 0x566604
mov eax, 0x44d
jmp 0x56664b
mov edx, eax
imul edx, edx, 0x5dc0
cmp edi, edx
jg 0x566623
cmp dword [ebx + 0x3790], 0x3ea
jne 0x566623
mov eax, 0x44e
jmp 0x56664b
mov edx, eax
imul edx, edx, 0x7530
cmp edi, edx
jg 0x566636
mov eax, 0x44f
jmp 0x56664b
imul eax, eax, 0xabe0
xor edx, edx
cmp edi, eax
setg dl
add edx, 0x450
mov eax, edx
cmp ecx, eax
jle 0x566651
mov eax, ecx
mov ecx, dword [esi]
cmp ecx, eax
mov dword [ebx + 0x46c8], eax
jge 0x56665f
mov eax, ecx
mov dword [esi], eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebx + 0x34]
mov edx, dword [ebx + 0x30]
mov edi, dword [ebx + 0x28]
push eax
mov eax, dword [ebx + 0x3790]
push esi
push eax
push ecx
push edx
call fcn.00565500
mov ecx, dword [ebp - 0x28]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x60]
push eax
push 0xfc4
push ecx
call fcn.0056f5c0
mov eax, dword [ebx + 0x3790]
add esp, 0x20
cmp eax, 0x3ea
jne 0x5666b0
cmp dword [esi], 0x44e
jne 0x5666b0
mov dword [esi], 0x44f
cmp dword [ebx + 0xb0], 0
je 0x5666bf
mov dword [esi], 0x44d
mov esi, dword [esi]
mov dword [ebp - 0x2c], esi
mov ecx, 0x3e9
cmp eax, 0x3e8
jne 0x5666de
cmp esi, 0x44f
jle 0x5666de
mov dword [ebx + 0x3790], ecx
cmp dword [ebx + 0x3790], ecx
jne 0x5666f8
cmp esi, 0x44f
jg 0x5666f8
mov dword [ebx + 0x3790], 0x3e8
mov esi, dword [ebx + 0x90]
mov edi, dword [ebp + 0x54]
mov eax, 0x51eb851f
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jle 0x566722
cmp dword [ebx + 0x3790], 0x3e8
jne 0x566792
lea edx, [esi + esi*2]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jle 0x5667d6
cmp dword [ebx + 0x3790], 0x3e8
jne 0x566792
lea edx, [esi + esi]
mov eax, 0x51eb851f
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
mov eax, 0x51eb851f
jne 0x56676e
imul esi
sar edx, 3
jmp 0x56678b
lea esi, [esi + esi*2]
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jne 0x566792
mov eax, 0x51eb851f
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, edi
cdq
idiv ecx
mov edx, dword [ebp - 0x4c]
cmp edx, 0xffffffff
je 0x5667ae
mov dword [ebx + 0x1dd4], edx
mov edx, dword [ebp - 0x50]
mov dword [ebx + 0x1dd8], edx
mov edx, dword [ebp + 0x7c]
push edx
mov edx, dword [ebp + 0x60]
push edx
mov edx, dword [ebp - 0x7c]
push edx
mov edx, dword [ebp - 0x10]
push edx
push ecx
mov ecx, dword [ebp + 0x5c]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov esi, ebx
call fcn.00565870
add esp, 0x1c
jmp 0x567b73
xor eax, eax
cmp dword [ebx + 0x37a8], eax
je 0x5667f8
mov ecx, 1
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebx + 0x37a8], eax
mov dword [ebp - 0x74], 2
cmp dword [ebx + 0x3790], 0x3ea
jne 0x566809
mov dword [ebp - 0xc], eax
jmp 0x566838
cmp dword [ebp - 0xc], eax
je 0x566838
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebx + 0xa0]
mov eax, dword [ebp - 4]
mov edi, dword [ebx + 0x3770]
push ecx
push edx
push eax
call fcn.00565a80
mov edi, dword [ebp + 0x54]
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x566838
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0xa0]
imul eax, edi
lea ecx, [esi*8]
cdq
idiv ecx
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x14]
cmp ecx, eax
jl 0x566857
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
inc eax
dec edx
push edx
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xb4]
dec ecx
push eax
mov dword [ebp - 0x44], ecx
call fcn.00573c70
mov edi, dword [ebx + 0x70]
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x54]
add ecx, esi
mov eax, edi
imul eax, ecx
add eax, eax
add esp, 0xc
add eax, eax
mov dword [ebp - 0x34], ecx
call fcn.00599900
mov ecx, dword [ebx + 0xac]
mov edx, edi
imul edx, esi
sub ecx, esi
imul ecx, edi
add edx, edx
mov eax, esp
add edx, edx
push edx
lea edx, [ebx + ecx*4 + 0x37c8]
push edx
push eax
mov dword [ebp - 0x1c], eax
call fcn.00597e30
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3ea
jne 0x5668d9
push 0x3c
call fcn.00573260
add esp, 4
shl eax, 8
jmp 0x5668df
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 8]
mov ecx, dword [ebx + 0x3778]
sub eax, ecx
mov edx, eax
and edx, 0xffff
imul edx, edx, 0x3d7
sar eax, 0x10
imul eax, eax, 0x3d7
sar edx, 0x10
add edx, ecx
add eax, edx
mov dword [ebx + 0x3778], eax
sar eax, 8
push eax
call fcn.005740d0
add esp, 4
cmp dword [ebx + 0x6c], 0x800
lea edi, [ebx + 0x3780]
jne 0x56694f
mov edx, dword [ebx + 0x90]
mov ecx, dword [ebx + 0x70]
push edx
mov edx, dword [ebp + 0x54]
push ecx
imul ecx, esi
push edx
mov edx, dword [ebp - 0x1c]
push edi
lea ecx, [edx + ecx*4]
mov edx, dword [ebp - 0x40]
push ecx
push eax
push edx
call fcn.00563e70
add esp, 0x1c
jmp 0x566976
mov ecx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp - 0x1c]
push ecx
mov ecx, dword [ebp - 0x40]
push eax
imul eax, esi
push edi
lea eax, [edx + eax*4]
push eax
mov eax, dword [ebp + 0x54]
push 3
push ecx
call fcn.00563fb0
add esp, 0x18
cmp dword [ebp + 0x7c], 0
je 0x566a05
mov eax, dword [ebx + 0x70]
mov ecx, dword [ebp - 0x1c]
mov edx, eax
imul eax, dword [ebp + 0x54]
imul edx, esi
lea edx, [ecx + edx*4]
mov ecx, dword [ebx + 0xb4]
push eax
mov eax, edx
and ecx, 7
push eax
mov dword [ebp - 0x24], edx
mov edx, dword [ecx*4 + 0x604720]
push eax
call edx
add esp, 0xc
fld dword [0x603d2c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5669cb
fld st(0)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x566a05
jmp 0x5669cd
fstp st(0)
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp - 0x1c]
mov ecx, eax
imul eax, esi
imul ecx, dword [ebp + 0x54]
add ecx, ecx
add ecx, ecx
push ecx
lea eax, [edx + eax*4]
push 0
push eax
call fcn.00597130
add esp, 0xc
fldz
fst dword [ebx + 0x378c]
fst dword [ebx + 0x3788]
fst dword [ebx + 0x3784]
fstp dword [edi]
fld1
mov edi, dword [ebx + 0x3790]
fstp dword [ebp - 8]
cmp edi, 0x3ea
je 0x5670b6
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x18], eax
imul eax, dword [ebp + 0x54]
add eax, eax
call fcn.00599900
cmp dword [ebp], 0
mov dword [ebp - 0x70], esp
mov dword [ebp - 0x68], 0xffffffff
je 0x566a5b
fld dword [0x603d34]
mov dword [ebp - 0x68], 1
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 0x41
jnp 0x566a5b
mov dword [ebp - 0x68], 0
mov esi, dword [ebp - 0x44]
imul esi, dword [ebp - 0x20]
add esi, esi
add esi, esi
add esi, esi
cmp edi, 0x3e9
jne 0x566ae0
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebx + 0x3770]
imul eax, eax, 0x32
mov edx, dword [ebx + 0x94]
push ecx
xor ecx, ecx
cmp dword [ebx + 0x90], eax
push edx
mov edx, dword [ebp - 0x2c]
sete cl
mov eax, esi
push ecx
mov ecx, dword [ebx + 0x34]
push edx
call fcn.005655e0
add esp, 0x10
cmp dword [ebx + 0x37b0], 0
mov dword [ebx + 0x24], eax
jne 0x566ae3
sub eax, esi
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fmul dword [0x603d50]
fmul qword [0x603d48]
fldl2e
fmulp st(1)
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fld1
faddp st(1)
fscale
fstp st(1)
fld1
fsubrp st(1)
fstp dword [ebp - 8]
jmp 0x566ae3
mov dword [ebx + 0x24], esi
mov ecx, dword [ebx + 0x37b0]
test ecx, ecx
je 0x566cf8
cmp dword [ebx + 0x94], 0
je 0x566cf8
cmp dword [ebx + 0xb0], 0
jne 0x566cf8
fldz
mov eax, dword [ebx + 0x37a0]
mov edi, 0x11
fld st(0)
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x44], 0x3e80
cmp eax, 0x44d
jne 0x566b39
mov edi, 0xd
mov dword [ebp - 0x44], 0x1f40
jmp 0x566b4c
cmp eax, 0x44e
jne 0x566b4f
mov edi, 0xf
mov dword [ebp - 0x44], 0x2ee0
mov dword [ebp - 0x4c], edi
cmp dword [ebp - 0x18], 0
jle 0x566c7f
mov eax, dword [ebx + 0x70]
fld dword [0x603d40]
fld dword [0x631728]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x24], eax
jmp 0x566b79
fxch st(2)
xor esi, esi
fld st(3)
cmp edi, 2
fld st(4)
jl 0x566c1a
mov ecx, dword [ebp - 0x80]
lea edx, [edi - 2]
shr edx, 1
inc edx
lea esi, [edx + edx]
jmp 0x566b98
fxch st(2)
fxch st(2)
fcom dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x566bc8
fxch st(3)
fcom dword [ecx]
fnstsw ax
test ah, 5
jp 0x566bce
fxch st(3)
fcom dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x566bc8
fld dword [ecx]
fcom st(6)
fnstsw ax
test ah, 0x41
jne 0x566bd6
fmul st(1)
jmp 0x566bd6
fld st(0)
fmul st(1)
jmp 0x566bd6
fld st(0)
fxch st(1)
fxch st(4)
fxch st(1)
faddp st(2)
fcom dword [ecx + 4]
fnstsw ax
test ah, 0x41
jne 0x566bee
fld dword [ecx + 4]
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x566c16
fcom dword [ecx + 4]
fnstsw ax
test ah, 0x41
jne 0x566c12
fld dword [ecx + 4]
fcom st(6)
fnstsw ax
test ah, 0x41
jne 0x566c06
fmul st(1)
add ecx, 8
faddp st(3)
sub edx, 1
jne 0x566b96
jmp 0x566c1c
fld st(0)
jmp 0x566c04
fld st(3)
jmp 0x566c06
fxch st(2)
cmp esi, edi
jge 0x566c63
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebx + 0x37b0]
add ecx, esi
fcom dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
fnstsw ax
test ah, 0x41
jne 0x566c47
fld dword [ecx]
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x566cda
fcom dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x566cd6
fld dword [ecx]
fcom st(6)
fnstsw ax
test ah, 0x41
jne 0x566c61
fmul st(1)
faddp st(5)
add dword [ebp - 0x80], 0x54
fxch st(4)
add dword [ebp - 0x50], 0x15
faddp st(2)
sub dword [ebp - 0x24], 1
faddp st(1)
jne 0x566b77
fstp st(2)
fstp st(0)
fild dword [ebp - 0x18]
movsx eax, word [ebp - 0x44]
mov dword [ebp - 0x24], eax
fidiv dword [ebp - 0x4c]
fmulp st(1)
fadd dword [0x603d3c]
fimul dword [ebp - 0x24]
call fcn.0059c610
mov esi, dword [ebx + 0x24]
mov edi, eax
mov ecx, esi
neg ecx
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jg 0x566cbb
mov edi, eax
mov eax, dword [ebx + 0x37a0]
cmp eax, 0x450
je 0x566cde
cmp eax, 0x451
je 0x566cde
add esi, edi
mov dword [ebx + 0x24], esi
jmp 0x566cfa
fld st(0)
jmp 0x566c5f
fld st(3)
jmp 0x566c61
lea ecx, [edi + edi*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, esi
mov dword [ebx + 0x24], ecx
jmp 0x566cfa
fldz
mov edi, dword [ebp + 0x54]
mov esi, dword [ebx + 0x90]
mov eax, edi
imul eax, eax, 0x3e8
cdq
idiv esi
mov edx, dword [ebp - 0x18]
mov dword [ebx + 8], edx
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x3770]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 0x44d
jne 0x566d33
mov dword [ebx + 0x1c], 0x1f40
jmp 0x566d4a
cmp eax, 0x44e
jne 0x566d43
mov dword [ebx + 0x1c], 0x2ee0
jmp 0x566d4a
mov dword [ebx + 0x1c], 0x3e80
mov eax, dword [ebx + 0x3790]
mov ecx, eax
sub ecx, 0x3e9
neg ecx
sbb ecx, ecx
and ecx, 0xffffe0c0
add ecx, 0x3e80
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x14], 0x3e80
cmp eax, 0x3e8
jne 0x566dd4
cmp dword [ebp - 0x20], 0x32
mov eax, dword [ebp - 0x30]
jle 0x566d93
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x1f40
jge 0x566db4
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
jle 0x566db1
mov ecx, 0x2ee0
mov dword [ebx + 0x1c], ecx
cmp eax, 0x1b58
jge 0x566dd4
mov eax, dword [ebx + 0x1c]
cmp eax, 0x1f40
mov dword [ebx + 0x14], 0x1f40
jle 0x566dd1
mov eax, 0x1f40
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebx + 0x94]
mov eax, dword [ebp - 4]
xor edx, edx
test ecx, ecx
sete dl
cmp dword [ebp - 0xc], 0
lea eax, [eax*8 - 8]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], edx
je 0x566e20
mov edi, dword [ebp - 0x14]
cmp edi, 2
jl 0x566e1d
add edi, edi
add edi, edi
add edi, edi
sub eax, edi
dec eax
cmp dword [ebx + 0x3790], 0x3e9
mov dword [ebx + 0x40], eax
jne 0x566e1d
add eax, 0xffffffec
mov dword [ebx + 0x40], eax
mov edi, dword [ebp + 0x54]
test edx, edx
je 0x566e44
cmp dword [ebx + 0x3790], 0x3e9
jne 0x566e86
mov eax, dword [ebx + 0x24]
imul eax, edi
cdq
idiv esi
mov ecx, dword [ebx + 0x40]
cmp ecx, eax
jge 0x566e83
mov eax, ecx
jmp 0x566e83
cmp dword [ebx + 0x3790], 0x3e9
jne 0x566e86
mov eax, dword [ebx + 0x3770]
mov edx, edi
imul edx, edx, 0x32
push eax
xor eax, eax
cmp esi, edx
sete al
push ecx
mov ecx, dword [ebp - 0x2c]
push eax
mov eax, dword [ebx + 0x40]
imul eax, esi
cdq
idiv edi
push ecx
mov ecx, dword [ebx + 0x34]
call fcn.005655e0
imul eax, edi
cdq
add esp, 0x10
idiv esi
mov dword [ebx + 0x40], eax
cmp dword [ebp - 0x74], 0
je 0x566f6c
mov edi, dword [ebx + 0xac]
fld1
sub edi, dword [ebx + 0x74]
mov eax, 0x51eb851f
imul esi
sar edx, 7
mov eax, edx
push esi
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x5c], 0
mov esi, dword [edx + 0x3c]
mov edx, dword [edx + 4]
push esi
mov esi, dword [ebp - 0x18]
sub edi, eax
imul edi, dword [ebp - 0x18]
push esi
push eax
push edx
sub esp, 8
lea ecx, [ebx + edi*4 + 0x37c8]
mov esi, ecx
fstp dword [esp + 4]
fstp dword [esp]
push ecx
call fcn.00564680
lea eax, [edi*4]
push eax
lea esi, [ebx + 0x37c8]
push 0
push esi
call fcn.00597130
mov ecx, dword [ebx + 0x70]
imul ecx, dword [ebx + 0xac]
add esp, 0x2c
xor edx, edx
test ecx, ecx
jle 0x566f37
mov edi, esi
mov esi, dword [ebp - 0x70]
fld dword [edi]
push ecx
fstp dword [esp]
call fcn.005638f0
mov word [esi + edx*2], ax
mov eax, dword [ebx + 0x70]
imul eax, dword [ebx + 0xac]
inc edx
add esp, 4
add edi, 4
cmp edx, eax
jl 0x566f11
jmp 0x566f3a
mov esi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x74]
push ecx
mov ecx, dword [ebx + 0xac]
push edx
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 0x5c]
push eax
push 0
push ecx
push esi
lea eax, [ebx + 8]
push eax
push edx
call fcn.0056fb70
mov edi, dword [ebp + 0x54]
add esp, 0x20
mov dword [ebx + 0x48], 0
jmp 0x566f6e
fstp st(0)
mov eax, dword [ebx + 0x70]
mov esi, dword [ebp - 0x70]
imul eax, edi
xor edx, edx
test eax, eax
jle 0x566fab
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0x70]
imul ecx, dword [ebp - 0x48]
add ecx, edx
push ecx
fld dword [edi + ecx*4]
fstp dword [esp]
call fcn.005638f0
mov word [esi + edx*2], ax
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp + 0x54]
inc edx
add esp, 4
cmp edx, eax
jl 0x566f80
mov edi, dword [ebp + 0x54]
mov ecx, dword [ebp - 0x68]
push ecx
mov ecx, dword [ebp - 0x64]
push 0
lea edx, [ebp - 0x84]
push edx
lea eax, [ebp - 0xb4]
push eax
push edi
push esi
lea eax, [ebx + 8]
push eax
push ecx
call fcn.0056fb70
add esp, 0x20
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x567b6e
mov esi, dword [ebx + 0x3790]
cmp esi, 0x3e8
jne 0x56701b
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
jne 0x566ffd
mov dword [ebp - 0x2c], 0x44d
jmp 0x56701b
cmp eax, 0x2ee0
jne 0x56700d
mov dword [ebp - 0x2c], 0x44e
jmp 0x56701b
cmp eax, 0x3e80
jne 0x56701b
mov dword [ebp - 0x2c], 0x44f
cmp dword [ebx + 0x60], 0
je 0x567031
cmp dword [ebx + 0x46d4], 0
jne 0x567031
mov eax, 1
jmp 0x567033
xor eax, eax
cmp dword [ebp - 0x84], 0
mov dword [ebx + 0x48], eax
jne 0x567077
mov edx, dword [ebx + 0x3770]
mov eax, dword [ebx + 0x90]
push edx
cdq
idiv dword [ebp + 0x54]
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 0x46d8], 0
mov edx, eax
call fcn.00563bf0
mov ecx, dword [ebp - 0x10]
mov byte [ecx - 1], al
add esp, 4
mov eax, 1
jmp 0x567b73
test eax, eax
je 0x5670b6
mov edx, dword [ebp - 0x20]
mov eax, dword [ebx + 0xa0]
mov ecx, dword [ebp - 4]
mov edi, dword [ebx + 0x3770]
push edx
push eax
push ecx
call fcn.00565a80
xor edx, edx
add esp, 0xc
test eax, eax
setne dl
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x3c], 0
mov dword [ebx + 0x37a8], 1
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffbb3
mov eax, 0x15
cmp ecx, 4
ja case.0x5670c9.1105
jmp dword [ecx*4 + 0x567b90]
mov eax, 0xd
jmp case.0x5670c9.1105
mov eax, 0x11
jmp case.0x5670c9.1105
mov eax, 0x13
mov esi, dword [ebp - 0x28]
push eax
push 0x271c
push esi
call fcn.0056f5c0
mov eax, dword [ebx + 0x3770]
push eax
push 0x2718
push esi
call fcn.0056f5c0
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.0056f5c0
add esp, 0x24
cmp dword [ebx + 0x3790], 0x3e8
je 0x5671d7
fld dword [0x631794]
push 0
push 0xfa6
fstp dword [ebp - 0x5c]
push esi
call fcn.0056f5c0
add esp, 0xc
cmp dword [ebx + 0x4c], 0
je 0x567147
fldz
jmp 0x56714a
fld dword [ebp - 0x5c]
call fcn.0059c610
push eax
push 0x2712
push esi
call fcn.0056f5c0
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
jne 0x56719a
cmp dword [ebx + 0x94], 0
je 0x5671d7
mov ecx, dword [ebx + 0xa0]
sub ecx, dword [ebx + 0x24]
push ecx
push 0xfa2
push esi
call fcn.0056f5c0
push 0
push 0xfb4
push esi
call fcn.0056f5c0
add esp, 0x18
jmp 0x5671d7
cmp dword [ebx + 0x94], 0
je 0x5671d7
push 1
push 0xfa6
push esi
call fcn.0056f5c0
mov edx, dword [ebx + 0x98]
push edx
push 0xfb4
push esi
call fcn.0056f5c0
mov eax, dword [ebx + 0xa0]
push eax
push 0xfa2
push esi
call fcn.0056f5c0
add esp, 0x24
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebx + 0x70]
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
add edi, edi
add edi, edi
mov eax, edi
call fcn.00599900
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0x30], esp
cmp eax, 0x3e8
je 0x567256
mov ecx, dword [ebx + 0x3794]
cmp eax, ecx
je 0x567256
test ecx, ecx
jle 0x567256
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebx + 0xac]
sub edx, ecx
sub edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x30]
imul edx, dword [ebx + 0x70]
push edi
lea eax, [ebx + edx*4 + 0x37c8]
push eax
push ecx
call fcn.00597e30
add esp, 0xc
mov edx, dword [ebx + 0xac]
mov ecx, dword [ebx + 0x70]
mov eax, edx
sub eax, dword [ebp - 0x48]
sub eax, dword [ebp + 0x54]
imul eax, ecx
test eax, eax
jle 0x5672c2
mov edi, dword [ebp + 0x54]
imul ecx, edi
lea edx, [eax*4]
push edx
lea eax, [ebx + ecx*4 + 0x37c8]
push eax
lea ecx, [ebx + 0x37c8]
push ecx
call fcn.005985f0
mov eax, dword [ebx + 0x70]
mov edx, eax
imul edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
add edx, edx
add edx, edx
push edx
mov edx, dword [ebx + 0xac]
sub edx, dword [ebp - 0x48]
push ecx
sub edx, edi
imul edx, eax
lea eax, [ebx + edx*4 + 0x37c8]
push eax
call fcn.00597e30
add esp, 0x18
jmp 0x5672ed
mov eax, ecx
imul eax, edx
add eax, eax
add eax, eax
push eax
mov eax, dword [ebp - 0x48]
sub eax, edx
add eax, dword [ebp + 0x54]
imul eax, ecx
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax*4]
push edx
lea eax, [ebx + 0x37c8]
push eax
call fcn.00597e30
add esp, 0xc
fld1
fcom dword [ebx + 0x377c]
fnstsw ax
test ah, 0x41
je 0x567308
fcomp dword [ebp - 8]
fnstsw ax
test ah, 0x41
jne 0x567346
jmp 0x56730a
fstp st(0)
mov ecx, dword [ebx + 0x90]
fld dword [ebp - 8]
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 4]
mov esi, dword [ebp - 0x1c]
push ecx
mov ecx, dword [ebx + 0x70]
push edx
mov edx, dword [ebp + 0x54]
push ecx
push edx
push eax
sub esp, 8
fstp dword [esp + 4]
fld dword [ebx + 0x377c]
fstp dword [esp]
push esi
call fcn.00564680
mov esi, dword [ebp - 0x28]
add esp, 0x20
cmp dword [ebx + 0x3790], 0x3e9
fld dword [ebp - 8]
fstp dword [ebx + 0x377c]
mov edi, 0x4000
jne 0x567369
cmp dword [ebx + 0x3770], 1
jne 0x5673a1
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x7d00
jle 0x567379
mov dword [ebx + 0x5c], edi
jmp 0x5673a1
cmp ecx, 0x3e80
jge 0x56738a
mov dword [ebx + 0x5c], 0
jmp 0x5673a1
lea eax, [ecx - 0x7d00]
shl eax, 0xb
cdq
add ecx, 0xffffc950
idiv ecx
add eax, edi
mov dword [ebx + 0x5c], eax
cmp dword [ebx + 0x37b0], 0
jne 0x567415
cmp dword [ebx + 0x70], 2
jne 0x567415
movzx ecx, word [ebx + 0x3774]
mov edx, edi
cmp cx, dx
jl 0x5673c3
cmp dword [ebx + 0x5c], edi
jge 0x567415
mov eax, dword [ebx + 0x90]
fild dword [ebx + 0x5c]
fld dword [0x603d38]
mov edi, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x6c]
fmul st(1), st(0)
mov edx, dword [eax + 0x3c]
fxch st(1)
mov eax, dword [eax + 4]
push edx
mov edx, dword [ebp + 0x54]
push edx
push eax
sub esp, 8
movsx ecx, cx
fstp dword [esp + 4]
mov dword [ebp - 0x34], ecx
mov eax, 2
fimul dword [ebp - 0x34]
fstp dword [esp]
push edi
call fcn.00564260
mov dx, word [ebx + 0x5c]
add esp, 0x1c
mov word [ebx + 0x3774], dx
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebp - 0xa0]
cmp edi, 0x3ea
je 0x56753d
bsr eax, dword [ebp - 0x98]
mov dword [ebp - 0x34], eax
xor eax, eax
cmp edi, 0x3e9
sete al
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
sub edx, dword [ebp - 0x34]
lea eax, [edx + ecx + 0x10]
mov edx, dword [ebp - 4]
lea edx, [edx*8 - 8]
cmp eax, edx
jg 0x56753d
cmp edi, 0x3e9
jne 0x567485
mov eax, dword [ebp - 0xc]
push 0xc
push eax
lea ecx, [ebp - 0xb4]
push ecx
call fcn.00573d60
mov ecx, dword [ebp - 0xa0]
add esp, 0xc
xor eax, eax
cmp dword [ebp - 0xc], eax
je 0x567542
mov edx, dword [ebp - 0x3c]
push 1
push edx
lea eax, [ebp - 0xb4]
push eax
call fcn.00573d60
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3e9
jne 0x5674cd
bsr ecx, dword [ebp - 0x98]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0xa0]
mov edx, ecx
sub edx, dword [ebp - 0x34]
add edx, 0x11
jmp 0x5674e4
bsr eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xa0]
mov edx, ecx
sub edx, eax
mov dword [ebp - 0x34], eax
add edx, 6
mov eax, dword [ebp - 4]
sar edx, 3
sub eax, edx
mov edx, dword [ebp - 0x14]
dec eax
cmp eax, edx
jge 0x5674f9
mov edx, eax
mov dword [ebp - 0x14], edx
cmp edx, 2
jl 0x56750d
cmp edx, 0x101
jle 0x567515
mov edx, 0x101
jmp 0x567512
mov edx, 2
mov dword [ebp - 0x14], edx
cmp edi, 0x3e9
jne 0x56754b
push 0x100
add edx, 0xfffffffe
push edx
lea eax, [ebp - 0xb4]
push eax
call fcn.00574060
mov ecx, dword [ebp - 0xa0]
add esp, 0xc
jmp 0x56754b
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebx + 0x37a8], eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x3790]
cmp eax, 0x3ea
je 0x56755f
mov dword [ebp - 0x58], 0x11
cmp eax, 0x3e8
jne 0x567591
bsr edx, dword [ebp - 0x98]
sub ecx, edx
add ecx, 6
sar ecx, 3
lea eax, [ebp - 0xb4]
mov edi, ecx
push eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x18], edi
call fcn.00573f20
add esp, 4
mov dword [ebp - 8], edi
jmp 0x5675ab
mov edi, dword [ebp - 4]
sub edi, dword [ebp - 0x14]
lea ecx, [ebp - 0xb4]
dec edi
push edi
push ecx
mov dword [ebp - 8], edi
call fcn.00573ef0
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x5675bd
cmp dword [ebx + 0x3790], 0x3e8
je 0x5675cf
lea edx, [ebp]
push edx
push 0x2726
push esi
call fcn.0056f5c0
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
jne 0x5675f9
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x68]
lea edx, [ebp - 0x38]
push edx
push 0x272c
push esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
call fcn.0056f5c0
add esp, 0xc
cmp dword [ebp - 0xc], 0
je 0x567686
cmp dword [ebp - 0x3c], 0
je 0x567686
push 0
push 0x271a
push esi
call fcn.0056f5c0
push 0
push 0xfa6
push esi
call fcn.0056f5c0
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.0056f5c0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
push 0
push eax
add ecx, edi
push ecx
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0x1c]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ecx
push esi
call fcn.0056d280
add esp, 0x3c
test eax, eax
jl 0x567b6e
lea edx, [ebp - 0x78]
push edx
push 0xfbf
push esi
call fcn.0056f5c0
push 0xfbc
push esi
call fcn.0056f5c0
add esp, 0x14
mov eax, dword [ebp - 0x58]
push eax
push 0x271a
push esi
call fcn.0056f5c0
mov eax, dword [ebx + 0x3790]
add esp, 0xc
cmp eax, 0x3e8
je 0x5677cf
mov ecx, dword [ebx + 0x3794]
cmp eax, ecx
je 0x5676fc
test ecx, ecx
jle 0x5676fc
push 0xfbc
push esi
call fcn.0056f5c0
push 0
push 2
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0x30]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ecx
push esi
call fcn.0056d280
push 0
push 0x2712
push esi
call fcn.0056f5c0
add esp, 0x2c
bsr edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa0]
sub eax, edx
dec eax
lea ecx, [edi*8]
cmp eax, ecx
mov dword [ebp - 0x34], edx
jg 0x5677cf
cmp dword [ebp - 0xc], 0
je 0x567757
cmp dword [ebp - 0x3c], 0
je 0x567757
cmp dword [ebx + 0x3790], 0x3e9
jne 0x567757
cmp dword [ebx + 0x94], 0
je 0x567757
mov edx, dword [ebx + 0xa0]
sub edx, dword [ebx + 0x24]
push edx
push 0xfa2
push esi
call fcn.0056f5c0
add esp, 0xc
mov eax, dword [ebx + 0x94]
push eax
push 0xfa6
push esi
call fcn.0056f5c0
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0xb4]
push ecx
push edi
push 0
push edx
push eax
push esi
call fcn.0056d280
add esp, 0x24
mov dword [ebp - 0x18], eax
test eax, eax
jl 0x567b6e
cmp dword [ebp - 0xc], 0
je 0x5678eb
cmp dword [ebp - 0x3c], 0
je 0x5677cf
cmp dword [ebx + 0x3790], 0x3e9
jne 0x5677cf
cmp dword [ebx + 0x94], 0
je 0x5677cf
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
lea edx, [ecx + edi]
push esi
push edx
add ecx, eax
push ecx
call fcn.005985f0
add esp, 0xc
add edi, esi
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], 0
je 0x5678eb
cmp dword [ebp - 0x3c], 0
jne 0x5678eb
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x51eb851f
imul ecx
mov eax, dword [ebp - 0x28]
sar edx, 7
mov esi, edx
push 0xfbc
shr esi, 0x1f
push eax
add esi, edx
call fcn.0056f5c0
mov ecx, dword [ebp - 0x28]
push 0
push 0x271a
push ecx
call fcn.0056f5c0
mov edx, dword [ebp - 0x28]
push 0
push 0x2712
push edx
call fcn.0056f5c0
mov eax, dword [ebp - 0x28]
push 0
push 0xfa6
push eax
call fcn.0056f5c0
mov ecx, dword [ebp - 0x28]
push 0xffffffffffffffff
push 0xfa2
push ecx
call fcn.0056f5c0
add esp, 0x38
cmp dword [ebx + 0x3790], 0x3e9
jne 0x56787e
mov eax, dword [ebp - 0x18]
push eax
lea edx, [ebp - 0xb4]
push edx
mov dword [ebp - 8], eax
call fcn.00573ef0
add esp, 8
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebp - 0x1c]
sub ecx, esi
sub ecx, edi
imul ecx, dword [ebx + 0x70]
push 0
push 2
lea eax, [ebp - 0x20]
push eax
lea eax, [edx + ecx*4]
mov ecx, dword [ebp - 0x28]
push esi
push eax
push ecx
call fcn.0056d280
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
push 0
push edx
mov edx, dword [ebp + 0x54]
sub edx, edi
imul edx, dword [ebx + 0x70]
add eax, ecx
push eax
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + edx*4]
mov edx, dword [ebp - 0x28]
push edi
push ecx
push edx
call fcn.0056d280
add esp, 0x30
test eax, eax
jl 0x567b6e
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x78]
push eax
push 0xfbf
push ecx
call fcn.0056f5c0
add esp, 0xc
mov edx, dword [ebx + 0x3770]
mov eax, dword [ebx + 0x90]
push edx
cdq
idiv dword [ebp + 0x54]
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebx + 0x3790]
dec edi
mov dword [ebp - 0x10], edi
mov edx, eax
call fcn.00563bf0
mov byte [edi], al
mov eax, dword [ebp - 0x98]
xor eax, dword [ebp - 0x78]
add esp, 4
mov dword [ebx + 0x46d8], eax
xor eax, eax
cmp dword [ebp - 0x7c], eax
je 0x56793a
mov dword [ebx + 0x3794], 0x3ea
jmp 0x567946
mov ecx, dword [ebx + 0x3790]
mov dword [ebx + 0x3794], ecx
mov edx, dword [ebx + 0x3770]
mov ecx, dword [ebp + 0x54]
mov dword [ebx + 0x3798], edx
mov dword [ebx + 0x379c], ecx
mov dword [ebx + 0x37ac], eax
cmp dword [ebx + 0xb8], eax
je 0x5679ed
cmp dword [ebp], eax
jne 0x567977
cmp dword [ebp - 0x60], eax
je 0x5679ed
mov edx, dword [ebp - 0x60]
fld dword [ebx + 0x46d0]
mov eax, dword [ebx + 0x70]
mov ecx, dword [ebx + 0xb4]
mov edi, dword [ebp - 0x40]
push edx
mov edx, dword [ebp + 0x54]
push eax
sub esp, 8
fstp dword [esp + 4]
lea esi, [ebx + 0x46cc]
fld dword [ebp + 0x24]
fstp dword [esp]
call fcn.00565800
add esp, 0x10
test eax, eax
je 0x5679f3
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp + 0x54]
mov ecx, dword [ebx + 0x3770]
mov esi, dword [ebx + 0x3790]
push ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 0x46d8], 0
mov edx, eax
call fcn.00563bf0
mov edx, dword [ebp - 0x10]
mov byte [edx], al
add esp, 4
mov eax, 1
jmp 0x567b73
mov dword [ebx + 0x46cc], eax
bsr ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp - 4]
sub eax, ecx
dec eax
lea edx, [esi*8 - 8]
cmp eax, edx
mov dword [ebp - 0x34], ecx
jle 0x567a35
cmp esi, 2
jl 0x565bb7
mov eax, dword [ebp - 0x10]
mov byte [eax + 1], 0
mov eax, 1
mov dword [ebx + 0x46d8], 0
jmp 0x567a5f
cmp dword [ebx + 0x3790], 0x3e8
mov eax, dword [ebp - 0x18]
jne 0x567a5f
cmp dword [ebp - 0xc], 0
jne 0x567a5f
cmp eax, 2
jle 0x567a5f
nop
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + eax], 0
jne 0x567a5f
dec eax
cmp eax, 2
jg 0x567a50
cmp dword [ebx + 0x94], 0
mov edx, dword [ebp - 0x14]
lea eax, [eax + edx + 1]
jne 0x567b73
push esi
push eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.00573ad0
add esp, 0xc
test eax, eax
jne 0x567b6e
mov eax, esi
jmp 0x567b73
cmp ecx, 0x10
jg 0x565eec
cmp dword [ebp + 0x5c], 1
je 0x567aca
cmp esi, 0x3e8
jne 0x567aac
cmp ecx, 0xa
jne 0x567aca
mov eax, 0x32
cdq
idiv ecx
mov dword [ebp - 0x20], 0x32
mov dword [ebp - 8], 3
mov dword [ebp - 0x58], eax
jmp 0x565eec
xor eax, eax
cmp ecx, 0xc
setle al
sub ecx, 0xc
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff7
add ecx, 0x19
mov esi, 0x3e8
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ecx
jmp 0x565ef8
cmp esi, 0x3ea
jne 0x567b04
cmp edi, 0x44e
jne 0x567b19
lea edi, [esi + 0x63]
jmp 0x567b19
cmp esi, 0x3e9
jne 0x567b19
cmp edi, 0x450
jg 0x567b19
mov edi, 0x450
mov ecx, dword [ebx + 0x3770]
mov edx, dword [ebp - 0x20]
push ecx
mov ecx, edi
call fcn.00563bf0
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
or al, cl
mov byte [edi], al
xor eax, eax
add esp, 4
cmp ecx, 1
setg al
inc eax
cmp esi, eax
jg 0x567b49
mov esi, eax
cmp ecx, 3
jne 0x567b54
mov dl, byte [ebp - 0x58]
mov byte [edi + 1], dl
cmp dword [ebx + 0x94], 0
jne 0x567b73
push esi
push eax
push edi
call fcn.00573ad0
add esp, 0xc
test eax, eax
mov eax, esi
je 0x567b73
mov eax, 0xfffffffd
lea esp, [ebp - 0x144]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x40]
xor ecx, ebp
call fcn.0059709c
add ebp, 0x44
mov esp, ebp
pop ebp
ret