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

Disassembly:
push ebp
lea ebp, [esp - 0x44]
sub esp, 0x17c
mov eax, dword [0x698b9c]
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 0x579469
mov ecx, 0x4fc
mov edx, dword [ebp + 0x54]
cmp edx, esi
mov dword [ebp - 4], ecx
mov dword [ebx + 0x46d8], esi
jle 0x57b453
cmp ecx, esi
jle 0x57b453
cmp ecx, 1
jne 0x5794a1
lea ecx, [edx + edx*4]
add ecx, ecx
cmp dword [ebx + 0x90], ecx
jne 0x5794a1
mov eax, 0xfffffffe
jmp 0x57b453
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 0x5794be
mov dword [ebp - 0x48], esi
jmp 0x5794c4
mov edx, dword [ebx + 0x74]
mov dword [ebp - 0x48], edx
mov ecx, dword [ebx + 0xa8]
mov edi, dword [ebp + 0x60]
cmp edi, ecx
jl 0x5794d6
mov edi, ecx
mov dword [ebp + 0x60], edi
lea ecx, [ebp - 0x6c]
push ecx
push 0x271f
push eax
call fcn.00582ea0
add esp, 0xc
cmp dword [ebx + 0x2c], 7
mov dword [ebp], esi
jl 0x5795e8
cmp dword [ebx + 0x90], 0x3e80
jl 0x5795e8
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.00579060
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.00586b20
add esp, 0x40
cmp dword [ebp - 0x60], esi
jne 0x579609
fld dword [0x656594]
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 5
jp 0x5795ff
fld dword [ebx + 0x46d0]
mov edx, dword [ebx + 0x70]
fmul dword [0x6565c4]
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.005790b0
fcomp dword [ebp - 0x30]
add esp, 8
fnstsw ax
test ah, 5
jp 0x5795c8
fld dword [ebx + 0x46d0]
fmul dword [0x6565c4]
fstp dword [ebx + 0x46d0]
jmp 0x5795ff
mov ecx, dword [ebx + 0x70]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0xb4]
push ecx
push edx
mov ecx, edi
call fcn.005790b0
fstp dword [ebx + 0x46d0]
add esp, 8
jmp 0x5795ff
cmp dword [ebx + 0x1de0], esi
je 0x5795ff
lea eax, [ebx + 0xbc]
push eax
call fcn.00584760
add esp, 4
mov dword [ebx + 0x8c], 0xffffffff
mov dword [ebx + 0x46c8], esi
cmp dword [ebp], esi
je 0x5796b2
cmp dword [ebx + 0x7c], 0xfffffc18
jne 0x579668
mov eax, dword [ebx + 0x3794]
cmp eax, esi
jne 0x579630
fld dword [ebp + 0x14]
jmp 0x57963f
cmp eax, 0x3ea
jne 0x57963c
fld dword [ebp + 0x1c]
jmp 0x57963f
fld dword [ebp + 0x18]
fld1
sub esp, 8
fsubrp st(1)
fmul dword [0x6565c0]
fadd dword [0x680850]
fstp qword [esp]
call fcn.005c7700
add esp, 8
call fcn.005c52f0
mov dword [ebx + 0x8c], eax
mov eax, dword [ebp + 0x20]
cmp eax, 0xc
jg 0x57967c
mov dword [ebx + 0x46c8], 0x44d
jmp 0x5796b2
cmp eax, 0xe
jg 0x57968d
mov dword [ebx + 0x46c8], 0x44e
jmp 0x5796b2
cmp eax, 0x10
jg 0x57969e
mov dword [ebx + 0x46c8], 0x44f
jmp 0x5796b2
xor ecx, ecx
cmp eax, 0x12
setg cl
add ecx, 0x450
mov dword [ebx + 0x46c8], ecx
cmp dword [ebx + 0x70], 2
jne 0x5796de
cmp dword [ebx + 0x78], 1
je 0x5796de
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.00578980
add esp, 0x10
jmp 0x5796e0
fldz
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x54]
push eax
mov eax, ebx
call fcn.00578460
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 0x5797f5
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 0x57974c
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 0x5797ee
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 0x579794
mov edi, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x58], eax
cmp esi, eax
jne 0x5797a3
mov esi, 0x3e8
cmp ecx, 0x64
jle 0x5797ad
mov esi, 0x3ea
cmp ecx, 0x19
jne 0x57b370
cmp esi, 0x3e8
je 0x5797d8
mov dword [ebp - 0x20], 0x32
mov dword [ebp - 8], 1
cmp esi, 0x3e8
jne 0x57b3cf
cmp edi, 0x44f
jle 0x57b3f9
mov edi, 0x44f
jmp 0x57b3f9
mov edx, edi
mov dword [ebp - 4], edx
jmp 0x5797f8
mov edx, dword [ebp - 4]
cmp edx, 3
jl 0x579779
mov esi, dword [ebx + 0xa0]
lea eax, [ecx + ecx*2]
add eax, eax
add eax, eax
add eax, eax
cmp esi, eax
jl 0x579779
cmp ecx, 0x32
jge 0x579839
mov eax, ecx
imul eax, edx
cmp eax, 0x12c
jl 0x579779
cmp esi, 0x960
jl 0x579779
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 0x579864
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 0x57987f
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 0x5798be
mov esi, 0x7f
jmp 0x579904
cmp eax, 0xbba
jne 0x5798c9
xor esi, esi
jmp 0x579904
mov esi, dword [ebx + 0x8c]
test esi, esi
jl 0x5798f1
imul esi, esi, 0x147
sar esi, 8
cmp dword [ebx + 0x6c], 0x801
jne 0x579904
cmp esi, 0x73
jl 0x579904
mov esi, 0x73
jmp 0x579904
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 0x579914
cmp dword [ebx + 0x70], 2
je 0x579962
mov eax, dword [ebx + 0x70]
cmp eax, 2
jne 0x579962
mov eax, esi
imul eax, esi
imul eax, eax, 0x7d0
sar eax, 0xe
add eax, 0x4268
cmp dword [ebx + 0x3770], 2
jne 0x57994d
sub eax, 0x3e8
xor edx, edx
cmp ecx, eax
setg dl
inc edx
mov dword [ebx + 0x3770], edx
jmp 0x579968
add eax, 0x3e8
xor edx, edx
cmp ecx, eax
setg dl
inc edx
mov dword [ebx + 0x3770], edx
jmp 0x579968
mov dword [ebx + 0x3770], eax
mov edx, dword [ebp - 0x20]
cmp edx, 0x32
mov ecx, dword [ebx + 0xa0]
mov dword [ebp - 8], ecx
jle 0x579994
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 0x5799b2
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 0x579a00
cmp dword [ebp], 0
jne 0x579a00
cmp dword [ebp - 0x60], 0
jne 0x579a00
mov eax, 1
jmp 0x579a02
xor eax, eax
cmp dword [ebx + 0x6c], 0x803
mov dword [ebp - 0x44], eax
mov dword [ebx + 0x38], eax
jne 0x579a20
mov dword [ebx + 0x3790], 0x3ea
jmp 0x579b24
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
jne 0x579b1e
fld1
fsub st(1)
fld st(0)
fld dword [0x6565bc]
fmul st(1), st(0)
fmul st(3)
faddp st(1)
call fcn.005c52f0
fmul dword [0x6565b8]
fxch st(1)
mov edi, eax
fmul dword [0x6565b4]
faddp st(1)
call fcn.005c52f0
sub eax, edi
imul eax, esi
imul eax, esi
sar eax, 0xe
add eax, edi
cmp dword [ebx + 0x6c], 0x800
jne 0x579a7a
add eax, 0x1f40
mov ecx, dword [ebx + 0x3794]
cmp ecx, 0x3ea
jne 0x579a8f
sub eax, 0xfa0
jmp 0x579a98
test ecx, ecx
jle 0x579a98
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 0x579acc
mov edx, 0x80
sub edx, esi
sar edx, 4
cmp dword [ebx + 0x28], edx
jle 0x579acc
mov dword [ebx + 0x3790], 0x3e8
cmp dword [ebp - 0x44], 0
je 0x579ae1
cmp esi, 0x64
jle 0x579ae1
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 0x579b26
mov dword [ebx + 0x3790], 0x3ea
jmp 0x579b26
mov dword [ebx + 0x3790], eax
fstp st(0)
mov ecx, 0x3ea
cmp dword [ebx + 0x3790], ecx
je 0x579b53
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 0x579b53
mov dword [ebx + 0x3790], ecx
cmp dword [ebx + 0xb0], 0
je 0x579b62
mov dword [ebx + 0x3790], ecx
mov edi, dword [ebx + 0x3794]
test edi, edi
jle 0x579bcb
mov eax, dword [ebx + 0x3790]
cmp eax, ecx
je 0x579b7e
cmp edi, ecx
je 0x579b82
cmp eax, ecx
jne 0x579bcb
cmp edi, ecx
je 0x579bcb
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 0x579bd0
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 0x579bc2
mov dword [ebx + 0x3790], edi
mov dword [ebp - 0x7c], ecx
jmp 0x579bd0
mov dword [ebp - 0xc], 0
jmp 0x579bd0
mov ecx, 1
cmp dword [ebx + 0x3770], ecx
jne 0x579c0a
mov eax, 2
cmp dword [ebx + 0x3798], eax
jne 0x579c0a
cmp dword [ebx + 0x44], 0
jne 0x579c0a
cmp dword [ebx + 0x3790], 0x3ea
je 0x579c0a
cmp edi, 0x3ea
je 0x579c0a
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x3770], eax
jmp 0x579c11
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.00578f80
add esp, 0x10
mov dword [ebp - 0x54], eax
cmp edi, 0x3ea
je 0x579c77
mov eax, dword [ebx + 0x3794]
cmp eax, 0x3ea
jne 0x579c77
mov edx, dword [ebx + 0xb4]
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x138]
push ecx
push edx
push eax
call fcn.00584250
add esp, 0xc
mov dword [ebp - 0x74], 1
cmp dword [ebx + 0x3790], 0x3ea
je 0x579c96
cmp dword [ebx + 0x37ac], 0
jne 0x579c96
cmp dword [ebx + 0x54], 0
je 0x579dfd
cmp dword [ebx + 0x70], 2
mov dword [ebp - 0x24], 0x451
jne 0x579cb5
cmp dword [ebx + 0x78], 1
je 0x579cb5
mov eax, 0x6564e4
mov ecx, 0x656504
jmp 0x579cbf
mov eax, 0x6564a4
mov ecx, 0x6564c4
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 0x579dab
cmp dword [ebx + 0x37a4], ecx
jl 0x579da9
sub edx, esi
jmp 0x579dab
add edx, esi
cmp dword [ebp - 0x54], edx
jge 0x579dbc
dec ecx
sub eax, 8
cmp ecx, 0x44d
jg 0x579d94
cmp ecx, 0x44e
jne 0x579dc9
mov ecx, 0x44f
mov dword [ebx + 0x37a4], ecx
mov dword [ebx + 0x37a0], ecx
test edi, edi
jne 0x579dfd
mov eax, dword [ebx + 0x3790]
cmp eax, 0x3ea
je 0x579dfd
cmp dword [ebx + 0x58], edi
jne 0x579dfd
cmp ecx, 0x44f
jle 0x579dfd
mov dword [ebx + 0x37a0], 0x44f
mov eax, dword [ebx + 0x84]
cmp dword [ebx + 0x37a0], eax
lea esi, [ebx + 0x37a0]
jle 0x579e13
mov dword [esi], eax
mov edx, dword [ebx + 0x80]
cmp edx, 0xfffffc18
je 0x579e23
mov dword [esi], edx
cmp dword [ebx + 0x3790], 0x3ea
je 0x579e48
cmp dword [ebp - 0x30], 0x3a98
jge 0x579e48
mov eax, dword [esi]
cmp eax, 0x44f
jl 0x579e46
mov eax, 0x44f
mov dword [esi], eax
mov eax, dword [ebx + 0x90]
cmp eax, 0x5dc0
jg 0x579e63
cmp dword [esi], 0x450
jle 0x579e63
mov dword [esi], 0x450
cmp eax, 0x3e80
jg 0x579e78
cmp dword [esi], 0x44f
jle 0x579e78
mov dword [esi], 0x44f
cmp eax, 0x2ee0
jg 0x579e8d
cmp dword [esi], 0x44e
jle 0x579e8d
mov dword [esi], 0x44e
cmp eax, 0x1f40
jg 0x579ea2
cmp dword [esi], 0x44d
jle 0x579ea2
mov dword [esi], 0x44d
mov ecx, dword [ebx + 0x46c8]
test ecx, ecx
je 0x579f41
cmp edx, 0xfffffc18
jne 0x579f41
mov eax, dword [ebx + 0x3770]
mov edi, dword [ebp - 0x54]
mov edx, eax
imul edx, edx, 0x4650
cmp edi, edx
jg 0x579ee4
cmp dword [ebx + 0x3790], 0x3ea
jne 0x579ee4
mov eax, 0x44d
jmp 0x579f2b
mov edx, eax
imul edx, edx, 0x5dc0
cmp edi, edx
jg 0x579f03
cmp dword [ebx + 0x3790], 0x3ea
jne 0x579f03
mov eax, 0x44e
jmp 0x579f2b
mov edx, eax
imul edx, edx, 0x7530
cmp edi, edx
jg 0x579f16
mov eax, 0x44f
jmp 0x579f2b
imul eax, eax, 0xabe0
xor edx, edx
cmp edi, eax
setg dl
add edx, 0x450
mov eax, edx
cmp ecx, eax
jle 0x579f31
mov eax, ecx
mov ecx, dword [esi]
cmp ecx, eax
mov dword [ebx + 0x46c8], eax
jge 0x579f3f
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.00578de0
mov ecx, dword [ebp - 0x28]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x60]
push eax
push 0xfc4
push ecx
call fcn.00582ea0
mov eax, dword [ebx + 0x3790]
add esp, 0x20
cmp eax, 0x3ea
jne 0x579f90
cmp dword [esi], 0x44e
jne 0x579f90
mov dword [esi], 0x44f
cmp dword [ebx + 0xb0], 0
je 0x579f9f
mov dword [esi], 0x44d
mov esi, dword [esi]
mov dword [ebp - 0x2c], esi
mov ecx, 0x3e9
cmp eax, 0x3e8
jne 0x579fbe
cmp esi, 0x44f
jle 0x579fbe
mov dword [ebx + 0x3790], ecx
cmp dword [ebx + 0x3790], ecx
jne 0x579fd8
cmp esi, 0x44f
jg 0x579fd8
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 0x57a002
cmp dword [ebx + 0x3790], 0x3e8
jne 0x57a072
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 0x57a0b6
cmp dword [ebx + 0x3790], 0x3e8
jne 0x57a072
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 0x57a04e
imul esi
sar edx, 3
jmp 0x57a06b
lea esi, [esi + esi*2]
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jne 0x57a072
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 0x57a08e
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.00579150
add esp, 0x1c
jmp 0x57b453
xor eax, eax
cmp dword [ebx + 0x37a8], eax
je 0x57a0d8
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 0x57a0e9
mov dword [ebp - 0xc], eax
jmp 0x57a118
cmp dword [ebp - 0xc], eax
je 0x57a118
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.00579360
mov edi, dword [ebp + 0x54]
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x57a118
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 0x57a137
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.00587630
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.005c2560
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.005bfdd0
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3ea
jne 0x57a1b9
push 0x3c
call fcn.00586c20
add esp, 4
shl eax, 8
jmp 0x57a1bf
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.00587a90
add esp, 4
cmp dword [ebx + 0x6c], 0x800
lea edi, [ebx + 0x3780]
jne 0x57a22f
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.00577750
add esp, 0x1c
jmp 0x57a256
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.00577890
add esp, 0x18
cmp dword [ebp + 0x7c], 0
je 0x57a2e5
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 + 0x656f80]
push eax
call edx
add esp, 0xc
fld dword [0x65658c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x57a2ab
fld st(0)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x57a2e5
jmp 0x57a2ad
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.005bfd50
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 0x57a996
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x18], eax
imul eax, dword [ebp + 0x54]
add eax, eax
call fcn.005c2560
cmp dword [ebp], 0
mov dword [ebp - 0x70], esp
mov dword [ebp - 0x68], 0xffffffff
je 0x57a33b
fld dword [0x656594]
mov dword [ebp - 0x68], 1
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 0x41
jnp 0x57a33b
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 0x57a3c0
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.00578ec0
add esp, 0x10
cmp dword [ebx + 0x37b0], 0
mov dword [ebx + 0x24], eax
jne 0x57a3c3
sub eax, esi
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fmul dword [0x6565b0]
fmul qword [0x6565a8]
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 0x57a3c3
mov dword [ebx + 0x24], esi
mov ecx, dword [ebx + 0x37b0]
test ecx, ecx
je 0x57a5d8
cmp dword [ebx + 0x94], 0
je 0x57a5d8
cmp dword [ebx + 0xb0], 0
jne 0x57a5d8
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 0x57a419
mov edi, 0xd
mov dword [ebp - 0x44], 0x1f40
jmp 0x57a42c
cmp eax, 0x44e
jne 0x57a42f
mov edi, 0xf
mov dword [ebp - 0x44], 0x2ee0
mov dword [ebp - 0x4c], edi
cmp dword [ebp - 0x18], 0
jle 0x57a55f
mov eax, dword [ebx + 0x70]
fld dword [0x6565a0]
fld dword [0x680850]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x24], eax
jmp 0x57a459
fxch st(2)
xor esi, esi
fld st(3)
cmp edi, 2
fld st(4)
jl 0x57a4fa
mov ecx, dword [ebp - 0x80]
lea edx, [edi - 2]
shr edx, 1
inc edx
lea esi, [edx + edx]
jmp 0x57a478
fxch st(2)
fxch st(2)
fcom dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x57a4a8
fxch st(3)
fcom dword [ecx]
fnstsw ax
test ah, 5
jp 0x57a4ae
fxch st(3)
fcom dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x57a4a8
fld dword [ecx]
fcom st(6)
fnstsw ax
test ah, 0x41
jne 0x57a4b6
fmul st(1)
jmp 0x57a4b6
fld st(0)
fmul st(1)
jmp 0x57a4b6
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 0x57a4ce
fld dword [ecx + 4]
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x57a4f6
fcom dword [ecx + 4]
fnstsw ax
test ah, 0x41
jne 0x57a4f2
fld dword [ecx + 4]
fcom st(6)
fnstsw ax
test ah, 0x41
jne 0x57a4e6
fmul st(1)
add ecx, 8
faddp st(3)
sub edx, 1
jne 0x57a476
jmp 0x57a4fc
fld st(0)
jmp 0x57a4e4
fld st(3)
jmp 0x57a4e6
fxch st(2)
cmp esi, edi
jge 0x57a543
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 0x57a527
fld dword [ecx]
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x57a5ba
fcom dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x57a5b6
fld dword [ecx]
fcom st(6)
fnstsw ax
test ah, 0x41
jne 0x57a541
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 0x57a457
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 [0x65659c]
fimul dword [ebp - 0x24]
call fcn.005c52f0
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 0x57a59b
mov edi, eax
mov eax, dword [ebx + 0x37a0]
cmp eax, 0x450
je 0x57a5be
cmp eax, 0x451
je 0x57a5be
add esi, edi
mov dword [ebx + 0x24], esi
jmp 0x57a5da
fld st(0)
jmp 0x57a53f
fld st(3)
jmp 0x57a541
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 0x57a5da
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 0x57a613
mov dword [ebx + 0x1c], 0x1f40
jmp 0x57a62a
cmp eax, 0x44e
jne 0x57a623
mov dword [ebx + 0x1c], 0x2ee0
jmp 0x57a62a
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 0x57a6b4
cmp dword [ebp - 0x20], 0x32
mov eax, dword [ebp - 0x30]
jle 0x57a673
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x1f40
jge 0x57a694
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
jle 0x57a691
mov ecx, 0x2ee0
mov dword [ebx + 0x1c], ecx
cmp eax, 0x1b58
jge 0x57a6b4
mov eax, dword [ebx + 0x1c]
cmp eax, 0x1f40
mov dword [ebx + 0x14], 0x1f40
jle 0x57a6b1
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 0x57a700
mov edi, dword [ebp - 0x14]
cmp edi, 2
jl 0x57a6fd
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 0x57a6fd
add eax, 0xffffffec
mov dword [ebx + 0x40], eax
mov edi, dword [ebp + 0x54]
test edx, edx
je 0x57a724
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57a766
mov eax, dword [ebx + 0x24]
imul eax, edi
cdq
idiv esi
mov ecx, dword [ebx + 0x40]
cmp ecx, eax
jge 0x57a763
mov eax, ecx
jmp 0x57a763
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57a766
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.00578ec0
imul eax, edi
cdq
add esp, 0x10
idiv esi
mov dword [ebx + 0x40], eax
cmp dword [ebp - 0x74], 0
je 0x57a84c
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.00577f60
lea eax, [edi*4]
push eax
lea esi, [ebx + 0x37c8]
push 0
push esi
call fcn.005bfd50
mov ecx, dword [ebx + 0x70]
imul ecx, dword [ebx + 0xac]
add esp, 0x2c
xor edx, edx
test ecx, ecx
jle 0x57a817
mov edi, esi
mov esi, dword [ebp - 0x70]
fld dword [edi]
push ecx
fstp dword [esp]
call fcn.005771d0
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 0x57a7f1
jmp 0x57a81a
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.00583450
mov edi, dword [ebp + 0x54]
add esp, 0x20
mov dword [ebx + 0x48], 0
jmp 0x57a84e
fstp st(0)
mov eax, dword [ebx + 0x70]
mov esi, dword [ebp - 0x70]
imul eax, edi
xor edx, edx
test eax, eax
jle 0x57a88b
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.005771d0
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 0x57a860
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.00583450
add esp, 0x20
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57b44e
mov esi, dword [ebx + 0x3790]
cmp esi, 0x3e8
jne 0x57a8fb
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
jne 0x57a8dd
mov dword [ebp - 0x2c], 0x44d
jmp 0x57a8fb
cmp eax, 0x2ee0
jne 0x57a8ed
mov dword [ebp - 0x2c], 0x44e
jmp 0x57a8fb
cmp eax, 0x3e80
jne 0x57a8fb
mov dword [ebp - 0x2c], 0x44f
cmp dword [ebx + 0x60], 0
je 0x57a911
cmp dword [ebx + 0x46d4], 0
jne 0x57a911
mov eax, 1
jmp 0x57a913
xor eax, eax
cmp dword [ebp - 0x84], 0
mov dword [ebx + 0x48], eax
jne 0x57a957
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.005774d0
mov ecx, dword [ebp - 0x10]
mov byte [ecx - 1], al
add esp, 4
mov eax, 1
jmp 0x57b453
test eax, eax
je 0x57a996
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.00579360
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.0x57a9a9.1105
jmp dword [ecx*4 + 0x57b470]
mov eax, 0xd
jmp case.0x57a9a9.1105
mov eax, 0x11
jmp case.0x57a9a9.1105
mov eax, 0x13
mov esi, dword [ebp - 0x28]
push eax
push 0x271c
push esi
call fcn.00582ea0
mov eax, dword [ebx + 0x3770]
push eax
push 0x2718
push esi
call fcn.00582ea0
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.00582ea0
add esp, 0x24
cmp dword [ebx + 0x3790], 0x3e8
je 0x57aab7
fld dword [0x680878]
push 0
push 0xfa6
fstp dword [ebp - 0x5c]
push esi
call fcn.00582ea0
add esp, 0xc
cmp dword [ebx + 0x4c], 0
je 0x57aa27
fldz
jmp 0x57aa2a
fld dword [ebp - 0x5c]
call fcn.005c52f0
push eax
push 0x2712
push esi
call fcn.00582ea0
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57aa7a
cmp dword [ebx + 0x94], 0
je 0x57aab7
mov ecx, dword [ebx + 0xa0]
sub ecx, dword [ebx + 0x24]
push ecx
push 0xfa2
push esi
call fcn.00582ea0
push 0
push 0xfb4
push esi
call fcn.00582ea0
add esp, 0x18
jmp 0x57aab7
cmp dword [ebx + 0x94], 0
je 0x57aab7
push 1
push 0xfa6
push esi
call fcn.00582ea0
mov edx, dword [ebx + 0x98]
push edx
push 0xfb4
push esi
call fcn.00582ea0
mov eax, dword [ebx + 0xa0]
push eax
push 0xfa2
push esi
call fcn.00582ea0
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.005c2560
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0x30], esp
cmp eax, 0x3e8
je 0x57ab36
mov ecx, dword [ebx + 0x3794]
cmp eax, ecx
je 0x57ab36
test ecx, ecx
jle 0x57ab36
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.005bfdd0
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 0x57aba2
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.005c1230
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.005bfdd0
add esp, 0x18
jmp 0x57abcd
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.005bfdd0
add esp, 0xc
fld1
fcom dword [ebx + 0x377c]
fnstsw ax
test ah, 0x41
je 0x57abe8
fcomp dword [ebp - 8]
fnstsw ax
test ah, 0x41
jne 0x57ac26
jmp 0x57abea
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.00577f60
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 0x57ac49
cmp dword [ebx + 0x3770], 1
jne 0x57ac81
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x7d00
jle 0x57ac59
mov dword [ebx + 0x5c], edi
jmp 0x57ac81
cmp ecx, 0x3e80
jge 0x57ac6a
mov dword [ebx + 0x5c], 0
jmp 0x57ac81
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 0x57acf5
cmp dword [ebx + 0x70], 2
jne 0x57acf5
movzx ecx, word [ebx + 0x3774]
mov edx, edi
cmp cx, dx
jl 0x57aca3
cmp dword [ebx + 0x5c], edi
jge 0x57acf5
mov eax, dword [ebx + 0x90]
fild dword [ebx + 0x5c]
fld dword [0x656598]
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.00577b40
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 0x57ae1d
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 0x57ae1d
cmp edi, 0x3e9
jne 0x57ad65
mov eax, dword [ebp - 0xc]
push 0xc
push eax
lea ecx, [ebp - 0xb4]
push ecx
call fcn.00587720
mov ecx, dword [ebp - 0xa0]
add esp, 0xc
xor eax, eax
cmp dword [ebp - 0xc], eax
je 0x57ae22
mov edx, dword [ebp - 0x3c]
push 1
push edx
lea eax, [ebp - 0xb4]
push eax
call fcn.00587720
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3e9
jne 0x57adad
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 0x57adc4
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 0x57add9
mov edx, eax
mov dword [ebp - 0x14], edx
cmp edx, 2
jl 0x57aded
cmp edx, 0x101
jle 0x57adf5
mov edx, 0x101
jmp 0x57adf2
mov edx, 2
mov dword [ebp - 0x14], edx
cmp edi, 0x3e9
jne 0x57ae2b
push pe_nt_image_headers32
add edx, 0xfffffffe
push edx
lea eax, [ebp - 0xb4]
push eax
call fcn.00587a20
mov ecx, dword [ebp - 0xa0]
add esp, 0xc
jmp 0x57ae2b
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 0x57ae3f
mov dword [ebp - 0x58], 0x11
cmp eax, 0x3e8
jne 0x57ae71
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.005878e0
add esp, 4
mov dword [ebp - 8], edi
jmp 0x57ae8b
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.005878b0
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x57ae9d
cmp dword [ebx + 0x3790], 0x3e8
je 0x57aeaf
lea edx, [ebp]
push edx
push 0x2726
push esi
call fcn.00582ea0
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57aed9
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.00582ea0
add esp, 0xc
cmp dword [ebp - 0xc], 0
je 0x57af66
cmp dword [ebp - 0x3c], 0
je 0x57af66
push 0
push 0x271a
push esi
call fcn.00582ea0
push 0
push 0xfa6
push esi
call fcn.00582ea0
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.00582ea0
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.00580b60
add esp, 0x3c
test eax, eax
jl 0x57b44e
lea edx, [ebp - 0x78]
push edx
push 0xfbf
push esi
call fcn.00582ea0
push 0xfbc
push esi
call fcn.00582ea0
add esp, 0x14
mov eax, dword [ebp - 0x58]
push eax
push 0x271a
push esi
call fcn.00582ea0
mov eax, dword [ebx + 0x3790]
add esp, 0xc
cmp eax, 0x3e8
je 0x57b0af
mov ecx, dword [ebx + 0x3794]
cmp eax, ecx
je 0x57afdc
test ecx, ecx
jle 0x57afdc
push 0xfbc
push esi
call fcn.00582ea0
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.00580b60
push 0
push 0x2712
push esi
call fcn.00582ea0
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 0x57b0af
cmp dword [ebp - 0xc], 0
je 0x57b037
cmp dword [ebp - 0x3c], 0
je 0x57b037
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57b037
cmp dword [ebx + 0x94], 0
je 0x57b037
mov edx, dword [ebx + 0xa0]
sub edx, dword [ebx + 0x24]
push edx
push 0xfa2
push esi
call fcn.00582ea0
add esp, 0xc
mov eax, dword [ebx + 0x94]
push eax
push 0xfa6
push esi
call fcn.00582ea0
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.00580b60
add esp, 0x24
mov dword [ebp - 0x18], eax
test eax, eax
jl 0x57b44e
cmp dword [ebp - 0xc], 0
je 0x57b1cb
cmp dword [ebp - 0x3c], 0
je 0x57b0af
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57b0af
cmp dword [ebx + 0x94], 0
je 0x57b0af
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.005c1230
add esp, 0xc
add edi, esi
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], 0
je 0x57b1cb
cmp dword [ebp - 0x3c], 0
jne 0x57b1cb
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.00582ea0
mov ecx, dword [ebp - 0x28]
push 0
push 0x271a
push ecx
call fcn.00582ea0
mov edx, dword [ebp - 0x28]
push 0
push 0x2712
push edx
call fcn.00582ea0
mov eax, dword [ebp - 0x28]
push 0
push 0xfa6
push eax
call fcn.00582ea0
mov ecx, dword [ebp - 0x28]
push 0xffffffffffffffff
push 0xfa2
push ecx
call fcn.00582ea0
add esp, 0x38
cmp dword [ebx + 0x3790], 0x3e9
jne 0x57b15e
mov eax, dword [ebp - 0x18]
push eax
lea edx, [ebp - 0xb4]
push edx
mov dword [ebp - 8], eax
call fcn.005878b0
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.00580b60
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.00580b60
add esp, 0x30
test eax, eax
jl 0x57b44e
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x78]
push eax
push 0xfbf
push ecx
call fcn.00582ea0
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.005774d0
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 0x57b21a
mov dword [ebx + 0x3794], 0x3ea
jmp 0x57b226
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 0x57b2cd
cmp dword [ebp], eax
jne 0x57b257
cmp dword [ebp - 0x60], eax
je 0x57b2cd
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.005790e0
add esp, 0x10
test eax, eax
je 0x57b2d3
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.005774d0
mov edx, dword [ebp - 0x10]
mov byte [edx], al
add esp, 4
mov eax, 1
jmp 0x57b453
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 0x57b315
cmp esi, 2
jl 0x579497
mov eax, dword [ebp - 0x10]
mov byte [eax + 1], 0
mov eax, 1
mov dword [ebx + 0x46d8], 0
jmp 0x57b33f
cmp dword [ebx + 0x3790], 0x3e8
mov eax, dword [ebp - 0x18]
jne 0x57b33f
cmp dword [ebp - 0xc], 0
jne 0x57b33f
cmp eax, 2
jle 0x57b33f
nop
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + eax], 0
jne 0x57b33f
dec eax
cmp eax, 2
jg 0x57b330
cmp dword [ebx + 0x94], 0
mov edx, dword [ebp - 0x14]
lea eax, [eax + edx + 1]
jne 0x57b453
push esi
push eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.00587490
add esp, 0xc
test eax, eax
jne 0x57b44e
mov eax, esi
jmp 0x57b453
cmp ecx, 0x10
jg 0x5797cc
cmp dword [ebp + 0x5c], 1
je 0x57b3aa
cmp esi, 0x3e8
jne 0x57b38c
cmp ecx, 0xa
jne 0x57b3aa
mov eax, 0x32
cdq
idiv ecx
mov dword [ebp - 0x20], 0x32
mov dword [ebp - 8], 3
mov dword [ebp - 0x58], eax
jmp 0x5797cc
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 0x5797d8
cmp esi, 0x3ea
jne 0x57b3e4
cmp edi, 0x44e
jne 0x57b3f9
lea edi, [esi + 0x63]
jmp 0x57b3f9
cmp esi, 0x3e9
jne 0x57b3f9
cmp edi, 0x450
jg 0x57b3f9
mov edi, 0x450
mov ecx, dword [ebx + 0x3770]
mov edx, dword [ebp - 0x20]
push ecx
mov ecx, edi
call fcn.005774d0
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 0x57b429
mov esi, eax
cmp ecx, 3
jne 0x57b434
mov dl, byte [ebp - 0x58]
mov byte [edi + 1], dl
cmp dword [ebx + 0x94], 0
jne 0x57b453
push esi
push eax
push edi
call fcn.00587490
add esp, 0xc
test eax, eax
mov eax, esi
je 0x57b453
mov eax, 0xfffffffd
lea esp, [ebp - 0x144]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x40]
xor ecx, ebp
call fcn.005bfcb8
add ebp, 0x44
mov esp, ebp
pop ebp
ret