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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5e62c8
mov eax, dword fs:[0]
push eax
sub esp, 0x3f8
mov eax, dword [0x632da0]
xor eax, esp
mov dword [esp + 0x3f0], eax
push ebx
push esi
push edi
mov eax, dword [0x632da0]
xor eax, esp
push eax
lea eax, [esp + 0x408]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.00524310
mov ebx, eax
lea eax, [ebx*4]
push eax
mov ecx, edi
mov dword [esp + 0x40], ebx
call fcn.00564110
lea ecx, [esp + 0x23c]
call fcn.00516c60
xor edi, edi
lea ecx, [esp + 0x2b0]
mov dword [esp + 0x410], edi
call fcn.00516c60
lea ecx, [esp + 0x28c]
mov byte [esp + 0x410], 1
call fcn.004effc0
lea ecx, [esp + 0x268]
mov byte [esp + 0x410], 2
call fcn.004effc0
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x410], 3
call fcn.004effc0
lea ecx, [esp + 0x58]
mov byte [esp + 0x410], 4
call fcn.004f7190
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x410], 5
call fcn.004f7190
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
inc eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x14], edi
sar eax, 1
mov edi, ebx
mov dword [esp + 0x38], eax
shl edi, 4
mov edx, dword [edi + ecx - 0xc]
lea eax, [edi + ecx]
mov dword [esp + 0x1c], edx
mov eax, dword [eax - 8]
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x410], 6
mov dword [esp + 0x20], eax
call fcn.00583170
lea ecx, [esp + 0x350]
mov byte [esp + 0x410], 7
call fcn.00516c60
mov ecx, dword [esi + 0x10]
xor eax, eax
test byte [edi + ecx - 0xe], 0x80
mov byte [esp + 0x410], 8
mov dword [esp + 0xa0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x9c], eax
je 0x56483c
lea eax, [ebx - 1]
push eax
lea edx, [esp + 0x1d4]
push edx
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.00526940
lea ecx, [esp + 0x1d0]
call fcn.005835a0
mov dword [esp + 0xa0], eax
test eax, eax
je 0x56483c
lea eax, [esp + 0x350]
push eax
lea ecx, [esp + 0x1d4]
call fcn.00584720
mov ecx, dword [esi + 0x10]
xor eax, eax
add ebx, 0xfffffffe
shl ebx, 4
mov edx, 0x800
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
test word [ebx + ecx + 2], dx
je 0x5647a6
mov eax, ecx
mov ecx, dword [edi + eax - 0x1c]
add edi, eax
mov dword [esp + 0x84], ecx
mov edx, dword [edi - 0x18]
lea eax, [esp + 0x354]
push eax
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x90], edx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x5647a6
mov dword [esp + 0x90], 1
mov edx, dword [esi + 0x10]
mov eax, 0x800
test word [edx + 2], ax
je 0x5647f1
mov eax, edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 8]
lea eax, [esp + 0x35c]
push eax
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x90], edx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x5647f1
mov dword [esp + 0x9c], 1
mov edx, dword [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00521b00
mov eax, dword [esi]
mov edx, dword [eax + 0x74]
lea ecx, [esp + 0x350]
push ecx
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x78]
push 1
mov ecx, esi
call edx
mov ecx, esi
call fcn.00524310
mov ecx, dword [esp + 0x360]
mov ebx, eax
mov eax, dword [esp + 0x35c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
lea edx, [esp + 0xe0]
push edx
lea eax, [esp + 0x130]
mov ecx, edx
push eax
xor edi, edi
push ecx
lea ecx, [esp + 0x338]
mov dword [esp + 0xec], edi
mov dword [esp + 0xf0], edi
mov dword [esp + 0x138], 0x64
mov dword [esp + 0x13c], edi
call fcn.004f0210
push edi
push edi
push eax
lea ecx, [esp + 0x388]
mov byte [esp + 0x41c], 9
call fcn.00516c80
push eax
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x414], 0xa
call fcn.0051b1c0
lea ecx, [esp + 0x37c]
mov byte [esp + 0x410], 9
call fcn.00516cb0
lea ecx, [esp + 0x32c]
mov byte [esp + 0x410], 8
call fcn.004f08d0
push edi
lea ecx, [esp + 0x2b4]
call fcn.004f2a70
mov edx, dword [esi + 0x10]
mov edi, ebx
shl edi, 4
test byte [edi + edx - 0xe], 1
lea ecx, [edi + edx - 0x10]
je 0x564938
lea eax, [esp + 0x2b0]
push eax
call fcn.0056ada0
lea ecx, [esp + 0x2b0]
call fcn.004f2e40
fstp qword [esp + 0x164]
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x2b4]
call fcn.004f41c0
mov edx, dword [eax]
mov dword [esp + 0xc4], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 0x10]
test byte [eax + 2], 0x80
je 0x564b02
test byte [eax + edi - 0xe], 1
jne 0x564b02
lea ecx, [esp + 0x32c]
call fcn.00583170
push 0
lea ecx, [esp + 0x330]
push ecx
mov ecx, esi
mov byte [esp + 0x418], 0xb
call fcn.00526940
lea ecx, [esp + 0x32c]
call fcn.005835a0
test eax, eax
je 0x564aee
lea ecx, [esp + 0x300]
call fcn.00516c60
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x330]
mov byte [esp + 0x414], 0xc
call fcn.00584720
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + edi - 0xc]
add eax, edi
mov dword [esp + 0xbc], ecx
mov edx, dword [eax - 8]
lea eax, [esp + 0x304]
push eax
lea ecx, [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], edx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x564ada
mov edx, dword [esi + 0x10]
mov eax, dword [edi + edx - 0x18]
mov ecx, dword [esp + 0x304]
add edi, edx
mov edi, dword [edi - 0x1c]
mov edx, dword [esp + 0x308]
sub ecx, edi
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
sub edx, eax
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
mov edx, dword [esp + 0x320]
fild dword [esp + 0x314]
mov ecx, edx
and ecx, 2
fld qword [0x5fcee0]
fmul st(1), st(0)
fxch st(1)
fmulp st(3)
fimul dword [esp + 0x318]
fmulp st(1)
faddp st(1)
jne 0x564a6c
movsx eax, dx
and eax, 0xfffffffb
cmp ax, 1
jne 0x564a6c
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x564a89
test cx, cx
jne 0x564ad8
movsx eax, dx
and eax, 0xfffffffb
test ax, ax
jne 0x564ad8
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x564ada
jmp 0x564a8b
fstp st(0)
push 0
mov ecx, esi
call fcn.00521b00
push 0
lea eax, [esp + 0x304]
push eax
mov ecx, esi
call fcn.005219a0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00524310
mov edx, dword [esi + 0x10]
mov ebx, eax
mov ecx, ebx
shl ecx, 4
lea eax, [ecx + edx]
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax - 8]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], edx
jmp 0x564ada
fstp st(0)
lea ecx, [esp + 0x300]
mov byte [esp + 0x410], 0xb
call fcn.00516cb0
lea ecx, [esp + 0x32c]
mov byte [esp + 0x410], 8
call fcn.005844b0
mov dword [esp + 0x18], 0
test ebx, ebx
jle 0x5661b1
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov ebx, edi
shl ebx, 4
lea ecx, [ebx + eax]
mov edx, 0x800
mov dword [esp + 0x2c], ebx
test word [ecx + 2], dx
je 0x565132
lea eax, [esp + 0x50]
push eax
call fcn.0056ad00
mov edi, dword [esp + 0x3c]
mov edx, dword [esi + 0x10]
dec edi
cmp dword [esp + 0x18], edi
jne 0x564b65
mov ecx, 0x800
test word [edx + 2], cx
mov ecx, edx
je 0x564b76
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 8]
jmp 0x564b92
mov eax, 0x800
test word [ebx + edx + 0x12], ax
je 0x564b82
mov ecx, dword [esi + 0x10]
add ecx, ebx
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x18]
jmp 0x564b92
mov eax, dword [esi + 0x10]
lea ecx, [ebx + eax]
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x16c], ecx
push 0
mov dword [esp + 0x174], eax
mov eax, dword [ebx + edx + 0xc]
lea ecx, [esp + 0x150]
push ecx
lea edx, [esp + 0x164]
push edx
push eax
lea eax, [esp + 0x17c]
push eax
lea ecx, [esp + 0xfc]
call fcn.005831a0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0x414], 0xd
call fcn.005ba770
call fcn.005bf3a0
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x18], edi
jne 0x564c24
xor edi, edi
jmp 0x564c29
mov edi, dword [esp + 0x18]
inc edi
mov eax, dword [esi + 0x10]
test byte [ebx + eax + 2], 0x80
jne 0x564db7
mov ebx, edi
shl ebx, 4
test byte [ebx + eax + 2], 0x80
je 0x564db3
lea ecx, [esp + 0x218]
call fcn.00583170
push edi
lea edx, [esp + 0x21c]
push edx
mov ecx, esi
mov byte [esp + 0x418], 0xe
call fcn.00526940
lea ecx, [esp + 0x218]
call fcn.005835a0
test eax, eax
je 0x564d9f
mov eax, dword [esi + 0x10]
mov ebx, dword [ebx + eax + 0xc]
mov ecx, dword [esp + 0x38]
add ebx, ecx
cmp dword [esp + 0x6c], ebx
jge 0x564d9f
lea ecx, [esp + 0x3a8]
call fcn.00516c60
lea edx, [esp + 0x3a8]
push edx
lea ecx, [esp + 0x21c]
mov byte [esp + 0x414], 0xf
call fcn.00584720
push edi
mov ecx, esi
call fcn.00521b00
push edi
lea eax, [esp + 0x3ac]
push eax
mov ecx, esi
call fcn.005219a0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
mov ecx, esi
call fcn.00524310
mov ebx, eax
mov dword [esp + 0x3c], ebx
test edi, edi
jne 0x564d5e
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x3ac]
mov dword [esp + 0x114], edx
push ecx
lea edx, [esp + 0x118]
push edx
mov dword [esp + 0x120], eax
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x564d56
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x124]
mov dword [esp + 0x128], ecx
push edx
mov ecx, esi
mov dword [esp + 0x128], eax
call fcn.00526dc0
inc ebx
mov dword [esp + 0x3c], ebx
sub ebx, dword [esp + 0x2c]
add dword [esp + 0x18], ebx
lea ecx, [esp + 0x3a8]
mov byte [esp + 0x410], 0xe
call fcn.00516cb0
lea ecx, [esp + 0x218]
mov byte [esp + 0x410], 0xd
call fcn.005844b0
lea ecx, [esp + 0xe8]
mov byte [esp + 0x410], 8
call fcn.005844b0
jmp 0x566083
lea ecx, [esp + 0x218]
mov byte [esp + 0x410], 0xd
call fcn.005844b0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x10]
movsx eax, word [ebx + ecx + 2]
and eax, 0x80
shr eax, 7
test eax, eax
je 0x565045
cmp dword [ebp + 0xc], 0
je 0x564ea4
shl edi, 4
movsx eax, word [edi + ecx + 2]
test eax, 0x800
je 0x5650ce
test al, al
js 0x5650ce
lea ecx, [esp + 0xe8]
call fcn.005835a0
test eax, eax
je 0x5650ce
mov eax, dword [esi + 0x10]
mov eax, dword [ebx + eax + 0xc]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
add eax, ecx
cmp dword [esp + 0x6c], eax
jl 0x564e27
test edi, edi
jne 0x5650ce
lea ecx, [esp + 0x3d4]
call fcn.00516c60
lea edx, [esp + 0x3d4]
push edx
lea ecx, [esp + 0xec]
mov byte [esp + 0x414], 0x10
call fcn.00584720
push edi
mov ecx, esi
call fcn.00521b00
push edi
lea eax, [esp + 0x3d8]
push eax
mov ecx, esi
call fcn.005219a0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00524310
mov dword [esp + 0x3c], eax
test edi, edi
jne 0x564e98
mov ecx, dword [esi + 0x10]
shl eax, 4
mov edx, dword [eax + ecx - 0xc]
add eax, ecx
mov dword [esp + 0x1c], edx
mov eax, dword [eax - 8]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x3d4]
jmp 0x564f76
test eax, eax
je 0x565045
lea ecx, [esp + 0xe8]
call fcn.005835a0
test eax, eax
je 0x565045
mov eax, dword [esi + 0x10]
shl edi, 4
movsx ecx, word [edi + eax + 2]
test ecx, 0x800
je 0x564f9c
test cl, cl
js 0x564f9c
mov ecx, dword [ebx + eax + 0xc]
mov edx, dword [esp + 0x38]
add ecx, edx
cmp dword [esp + 0x6c], ecx
jl 0x564efa
cmp dword [esp + 0x18], 0
jne 0x564f9c
lea ecx, [esp + 0x37c]
call fcn.00516c60
lea eax, [esp + 0x37c]
push eax
lea ecx, [esp + 0xec]
mov byte [esp + 0x414], 0x11
call fcn.00584720
mov edi, dword [esp + 0x18]
push edi
mov ecx, esi
call fcn.00521b00
push edi
lea ecx, [esp + 0x380]
push ecx
mov ecx, esi
call fcn.005219a0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00524310
mov dword [esp + 0x3c], eax
test edi, edi
jne 0x564f6f
mov ecx, dword [esi + 0x10]
shl eax, 4
mov edx, dword [eax + ecx - 0xc]
add eax, ecx
mov dword [esp + 0x1c], edx
mov eax, dword [eax - 8]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x37c]
mov byte [esp + 0x410], 0xd
call fcn.00516cb0
lea ecx, [esp + 0xe8]
mov byte [esp + 0x410], 8
call fcn.005844b0
jmp 0x566083
mov ecx, 0x400
test word [ebx + eax + 2], cx
lea ecx, [esp + 0xe8]
je 0x564ffa
lea edx, [esp + 0x58]
push edx
call fcn.00584700
mov edi, dword [esp + 0x14]
mov ecx, dword [0x633c6c]
lea eax, [esp + 0x5c]
shl edi, 4
push eax
add ecx, edi
call fcn.0056aae0
mov eax, dword [0x633c6c]
lea edx, [esp + 0x64]
push edx
lea ecx, [edi + eax + 0x10]
call fcn.0056aae0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
jmp 0x5650ed
lea eax, [esp + 0x28c]
push eax
call fcn.00584720
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x28c]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
mov edx, dword [esp + 0x298]
mov eax, dword [esp + 0x29c]
add edi, 3
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], edi
jmp 0x5650ed
mov ecx, dword [esi + 0x10]
push 0
add ecx, ebx
call fcn.0056ae80
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.004fb770
fcomp qword [0x5eedc0]
add esp, 0xc
fnstsw ax
test ah, 5
jp 0x5650ce
mov edi, dword [esp + 0x38]
lea ecx, [esp + 0xe8]
mov dword [esp + 0x104], edi
call fcn.005835a0
test eax, eax
je 0x5650ce
mov ecx, dword [esi + 0x10]
push 1
add ecx, ebx
call fcn.0056ae80
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x28c]
add eax, ebx
push ecx
lea ecx, [esp + 0xec]
mov dword [eax + 0xc], edi
call fcn.00584720
mov edx, dword [esp + 0x298]
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 0x10]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
add edx, ebx
inc eax
push edx
mov dword [esp + 0x18], eax
call fcn.0058cd30
mov eax, dword [esp + 0x50]
inc dword [esp + 0x18]
mov dword [esp + 0x78], 0
cmp dword [esp + 0x1c], eax
jne 0x56510d
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x54]
je 0x565119
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
lea ecx, [esp + 0xe8]
mov byte [esp + 0x410], 8
call fcn.005844b0
jmp 0x566083
lea eax, [esp + 0x23c]
push eax
call fcn.0056ada0
lea ecx, [esp + 0x23c]
call fcn.004f2e40
fstp qword [esp + 0x7c]
lea ecx, [esp + 0x1ac]
push ecx
lea ecx, [esp + 0x240]
call fcn.004f41c0
mov edx, dword [eax]
mov ecx, dword [esp + 0x25c]
mov dword [esp + 0xa4], edx
mov eax, dword [eax + 4]
mov edx, ecx
and edx, 2
mov dword [esp + 0xa8], eax
je 0x56518e
mov dword [esp + 0x6c], 2
jmp 0x56519b
movsx eax, cx
and eax, 0xfffffffb
movzx eax, ax
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x3c], 3
jne 0x5651bb
test dx, dx
jne 0x566096
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x566096
cmp dword [esp + 0x78], 0
jne 0x565681
test edi, edi
jne 0x5651fa
cmp dword [esp + 0x2cc], edi
je 0x5651fa
lea ecx, [esp + 0x2bc]
push ecx
lea edx, [esp + 0x244]
push edx
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x565685
mov ecx, dword [esp + 0x25c]
mov edi, dword [esp + 0x240]
mov edx, dword [esp + 0x244]
sub edx, dword [esp + 0x20]
mov eax, edi
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
mov edx, ecx
and edx, 2
fild dword [esp + 0x254]
fld qword [0x5fcee0]
fmul st(1), st(0)
fxch st(1)
fmulp st(2)
fimul dword [esp + 0x250]
fmulp st(2)
faddp st(1)
jne 0x56525e
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x56525e
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x565287
test dx, dx
jne 0x565a7d
movsx eax, cx
and eax, 0xfffffffb
test ax, ax
jne 0x565a7d
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x565a7f
jmp 0x565289
fstp st(0)
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x244]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x60], ecx
push eax
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edx
call fcn.004f7620
mov ecx, dword [esp + 0x38]
push 1
push ecx
lea ecx, [esp + 0x60]
call fcn.004f7380
lea edx, [esp + 0x23c]
push edx
lea ecx, [esp + 0x26c]
call fcn.004f1bb0
mov eax, dword [esp + 0x25c]
and eax, 0xfffffff9
cmp ax, 1
jne 0x5652fb
mov ecx, dword [esp + 0x258]
sub ecx, dword [esp + 0x38]
push ecx
jmp 0x565309
mov edx, dword [esp + 0x258]
mov eax, dword [esp + 0x38]
add edx, eax
push edx
lea ecx, [esp + 0x26c]
call fcn.004f2a70
lea ecx, [esp + 0x23c]
push ecx
lea ecx, [esp + 0x290]
call fcn.004f1bb0
push 0
lea ecx, [esp + 0x290]
call fcn.004f2a70
cmp dword [esp + 0x284], 1
mov dword [esp + 0x2c], 0
jle 0x565654
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x270]
push ecx
call fcn.00501080
add esp, 0xc
test eax, eax
jle 0x565654
cmp eax, 2
jne 0x56538e
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x270]
push ecx
call fcn.005ab970
add esp, 0xc
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x174]
mov dword [esp + 0x174], edx
push ecx
lea edx, [esp + 0x270]
push edx
mov dword [esp + 0x180], eax
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x5655bc
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x11c]
mov dword [esp + 0x120], ecx
push edx
lea ecx, [esp + 0x26c]
xor edi, edi
mov dword [esp + 0x120], eax
call fcn.004f2f60
mov eax, dword [esp + 0x258]
push eax
lea ecx, [esp + 0x26c]
call fcn.004f2a70
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x194]
mov dword [esp + 0x194], ecx
push eax
lea ecx, [esp + 0x60]
push ecx
mov dword [esp + 0x1a0], edx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x565450
mov edx, dword [esp + 0x240]
mov eax, dword [esp + 0x244]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
mov edi, 1
jmp 0x565470
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x38]
push 0
push ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x6c], eax
call fcn.004f7380
lea edx, [esp + 0x26c]
push edx
lea eax, [esp + 0x68]
push eax
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x565641
lea ecx, [esp + 0x268]
call fcn.004f2e40
fst qword [esp + 0x94]
fcomp qword [esp + 0x7c]
fnstsw ax
test ah, 5
jp 0x5655bc
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x1c0]
call fcn.004f8300
test eax, eax
je 0x5655bc
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
test edi, edi
je 0x5654f8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
push 1
push edx
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x118]
push ecx
lea edx, [esp + 0xbc]
push edx
lea ecx, [esp + 0x208]
call fcn.004f07c0
push eax
lea ecx, [esp + 0x290]
mov byte [esp + 0x414], 0x13
call fcn.004f1bb0
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x410], 8
call fcn.004f08d0
mov eax, dword [esp + 0x25c]
test al, 2
jne 0x56559d
cwde
and eax, 0xfffffffb
cmp ax, 2
je 0x56559d
lea eax, [esp + 0x248]
push eax
lea ecx, [esp + 0x270]
push ecx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x56559d
mov dword [esp + 0x2c], 1
jmp 0x5655b1
lea edx, [esp + 0x26c]
push edx
lea ecx, [esp + 0x240]
call fcn.004f2f60
fld qword [esp + 0x94]
fstp qword [esp + 0x7c]
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x2a8], 0
jle 0x565602
lea ecx, [esp + 0x28c]
call fcn.004f2e40
fcomp qword [0x5fd538]
fnstsw ax
test ah, 5
jp 0x565602
lea ecx, [esp + 0x28c]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2c], 0
je 0x565a83
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x248]
push edx
call fcn.0056aae0
mov eax, dword [esp + 0x248]
mov ecx, dword [esp + 0x24c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
inc edi
jmp 0x56607a
push 0
lea ecx, [esp + 0x290]
call fcn.004f2a70
jmp 0x5655bc
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x5655c0
mov ecx, dword [0x633c6c]
lea eax, [esp + 0x240]
push eax
call fcn.0056aae0
mov edi, 1
mov dword [esp + 0x14], edi
jmp 0x5655c0
test edi, edi
jne 0x565690
mov dword [esp + 0x8c], 1
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0xac]
push ecx
call fcn.004fb770
mov eax, dword [esp + 0x268]
mov edx, dword [esp + 0x2dc]
mov edi, dword [esp + 0x44]
and eax, 0xfffffff9
and edx, 0xfffffff9
xor ecx, ecx
add esp, 0xc
cmp ax, dx
sete cl
test ax, ax
je 0x5656e2
cmp dword [esp + 0x258], edi
jle 0x565a66
fldz
fcompp
fnstsw ax
test ecx, ecx
je 0x5656f6
test ah, 0x41
je 0x5656ff
jmp 0x565a68
test ah, 5
jp 0x565a68
lea eax, [esp + 0x23c]
push eax
lea ecx, [esp + 0x26c]
call fcn.004f1bb0
lea ecx, [esp + 0x2b0]
push ecx
lea ecx, [esp + 0x2e0]
call fcn.004f1bb0
mov edx, dword [esp + 0x25c]
and edx, 0xfffffff9
cmp dx, 1
jne 0x565743
mov eax, dword [esp + 0x258]
sub eax, edi
push eax
jmp 0x56574d
mov ecx, dword [esp + 0x258]
add ecx, edi
push ecx
lea ecx, [esp + 0x26c]
call fcn.004f2a70
mov edx, dword [esp + 0x2d0]
and edx, 0xfffffff9
cmp dx, 1
jne 0x565775
mov eax, dword [esp + 0x2cc]
sub eax, edi
push eax
jmp 0x56577f
mov ecx, dword [esp + 0x2cc]
add ecx, edi
push ecx
lea ecx, [esp + 0x2e0]
call fcn.004f2a70
lea edx, [esp + 0x23c]
push edx
lea ecx, [esp + 0x290]
call fcn.004f1bb0
push 0
lea ecx, [esp + 0x290]
call fcn.004f2a70
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x2e0]
push ecx
lea edx, [esp + 0x270]
push edx
call fcn.00500c10
add esp, 0xc
test eax, eax
jle 0x5659f8
cmp eax, 2
jne 0x5657f1
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x270]
push edx
call fcn.005ab970
add esp, 0xc
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x1a4]
mov dword [esp + 0x1a4], eax
push edx
lea eax, [esp + 0x270]
push eax
mov dword [esp + 0x1b0], ecx
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x565863
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x19c]
mov dword [esp + 0x19c], ecx
push eax
lea ecx, [esp + 0x26c]
mov dword [esp + 0x1a4], edx
call fcn.004f2f60
mov ecx, dword [esp + 0x258]
push ecx
lea ecx, [esp + 0x26c]
call fcn.004f2a70
jmp 0x565877
lea edx, [esp + 0x23c]
push edx
lea ecx, [esp + 0x26c]
call fcn.004f1bb0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x144]
mov dword [esp + 0x144], eax
push edx
lea eax, [esp + 0x2ec]
push eax
mov dword [esp + 0x150], ecx
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x5658e9
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x17c]
mov dword [esp + 0x17c], ecx
push eax
lea ecx, [esp + 0x2e0]
mov dword [esp + 0x184], edx
call fcn.004f3090
mov ecx, dword [esp + 0x2cc]
push ecx
lea ecx, [esp + 0x2e0]
call fcn.004f2a70
jmp 0x5658fd
lea edx, [esp + 0x2b0]
push edx
lea ecx, [esp + 0x2e0]
call fcn.004f1bb0
lea eax, [esp + 0x26c]
push eax
lea ecx, [esp + 0x2ec]
push ecx
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x5659f8
lea ecx, [esp + 0x268]
call fcn.004f2e40
fstp qword [esp + 0x2c]
lea ecx, [esp + 0x2dc]
call fcn.004f2e40
fld qword [esp + 0x2c]
fcomp qword [esp + 0x7c]
fnstsw ax
test ah, 5
jp 0x5659f6
fcomp qword [esp + 0x164]
fnstsw ax
test ah, 5
jp 0x5659f8
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
push 1
push edi
lea ecx, [esp + 0x274]
push ecx
mov dword [esp + 0x160], edx
lea edx, [esp + 0x160]
mov dword [esp + 0x164], eax
push edx
lea eax, [esp + 0x2f8]
push eax
lea ecx, [esp + 0x208]
call fcn.004f07c0
push eax
lea ecx, [esp + 0x290]
mov byte [esp + 0x414], 0x12
call fcn.004f1bb0
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x410], 8
call fcn.004f08d0
lea ecx, [esp + 0x26c]
push ecx
lea ecx, [esp + 0x240]
call fcn.004f2f60
lea edx, [esp + 0x2e8]
push edx
lea ecx, [esp + 0x2b4]
call fcn.004f3090
fld qword [esp + 0x2c]
fstp qword [esp + 0x7c]
jmp 0x5659f8
fstp st(0)
cmp dword [esp + 0x18], 0
mov edi, dword [esp + 0x14]
jle 0x565a22
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x2b0]
push eax
call fcn.0056ab50
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2a8], 0
jle 0x565a83
lea ecx, [esp + 0x28c]
call fcn.004f2e40
fcomp qword [0x5fd538]
fnstsw ax
test ah, 5
jp 0x565a83
lea ecx, [esp + 0x28c]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x565a83
fstp st(0)
cmp dword [esp + 0x18], 0
mov edi, dword [esp + 0x14]
jle 0x565a83
lea edx, [esp + 0x2b0]
push edx
jmp 0x565a4d
fstp st(0)
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
lea ecx, [eax - 3]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], 0
mov edx, 0x800
cmp eax, ecx
jne 0x565bc4
test edi, edi
jle 0x565acf
mov ecx, dword [0x633c6c]
test word [ecx + 2], dx
je 0x565abf
lea eax, [esp + 0x24]
push eax
call fcn.0056ad00
jmp 0x565af5
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x28], eax
jmp 0x565af5
mov ecx, dword [esi + 0x10]
test word [ecx + 2], dx
je 0x565ae4
lea eax, [esp + 0x24]
push eax
call fcn.0056ad00
jmp 0x565af5
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x28], edx
cmp dword [esp + 0x8c], 0
jne 0x5660b3
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x248]
lea ecx, [esp + 0x23c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
fild dword [esp + 0x2c]
sub eax, dword [esp + 0x24c]
fstp qword [esp + 0xcc]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [esp + 0x94]
call fcn.004f0910
fchs
lea ecx, [esp + 0x23c]
fmul qword [esp + 0x94]
fstp qword [esp + 0x94]
call fcn.004f08e0
mov ecx, dword [esp + 0x25c]
fchs
fmul qword [esp + 0xcc]
mov edx, ecx
and edx, 2
fadd qword [esp + 0x94]
jne 0x565b98
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x565b98
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x565c6e
test dx, dx
jne 0x565ffe
movsx eax, cx
and eax, 0xfffffffb
test ax, ax
jne 0x565ffe
fldz
fcompp
fnstsw ax
test ah, 0x41
jne 0x566000
jmp 0x565c70
mov ecx, dword [esi + 0x10]
add eax, 3
shl eax, 4
add ecx, eax
test word [ecx + 2], dx
je 0x565be4
lea eax, [esp + 0x24]
push eax
call fcn.0056ad00
jmp 0x565b03
mov ecx, dword [esi + 0x10]
lea eax, [ebx + ecx]
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x48]
lea edx, [esp + 0x184]
mov dword [esp + 0x28], eax
mov dword [esp + 0x188], eax
push edx
lea eax, [esp + 0x24c]
push eax
mov dword [esp + 0x18c], ecx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x565b03
lea ecx, [esp + 0x23c]
push ecx
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x7c], 1
call fcn.0051b1c0
fld qword [esp + 0x7c]
mov edx, dword [esp + 0xa4]
fstp qword [esp + 0x164]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], eax
jmp 0x56607e
fstp st(0)
mov ecx, dword [esp + 0x248]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x68], ecx
push eax
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x64], edx
call fcn.004f7620
mov ebx, dword [esp + 0x38]
push 1
push ebx
lea ecx, [esp + 0x60]
call fcn.004f7380
lea ecx, [esp + 0x23c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.004f1bb0
mov edx, dword [esp + 0x25c]
and edx, 0xfffffff9
cmp dx, 1
jne 0x565ce7
mov eax, dword [esp + 0x258]
sub eax, ebx
push eax
jmp 0x565cf1
mov ecx, dword [esp + 0x258]
add ecx, ebx
push ecx
lea ecx, [esp + 0x26c]
call fcn.004f2a70
lea edx, [esp + 0x23c]
push edx
lea ecx, [esp + 0x290]
call fcn.004f1bb0
push 0
lea ecx, [esp + 0x290]
call fcn.004f2a70
cmp dword [esp + 0x284], 1
jle 0x565f59
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x270]
push edx
call fcn.00501080
add esp, 0xc
test eax, eax
jle 0x565f59
cmp eax, 2
jne 0x565d6e
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x270]
push edx
call fcn.005ab970
add esp, 0xc
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x18c]
mov dword [esp + 0x18c], eax
push edx
lea eax, [esp + 0x278]
push eax
mov dword [esp + 0x198], ecx
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x565f59
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x134]
mov dword [esp + 0x134], ecx
push eax
lea ecx, [esp + 0x26c]
mov dword [esp + 0x13c], edx
call fcn.004f3090
mov ecx, dword [esp + 0x258]
push ecx
lea ecx, [esp + 0x26c]
call fcn.004f2a70
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x13c]
mov dword [esp + 0x13c], edx
push ecx
lea edx, [esp + 0x68]
push edx
mov dword [esp + 0x148], eax
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x565e35
mov eax, dword [esp + 0x248]
mov ecx, dword [esp + 0x24c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x2c], 1
jmp 0x565e51
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push 0
mov dword [esp + 0x64], ecx
push ebx
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], eax
call fcn.004f7380
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x278]
push eax
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x565f4b
lea ecx, [esp + 0x268]
call fcn.004f2e40
fcomp qword [esp + 0x7c]
fnstsw ax
test ah, 5
jp 0x565f59
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x1c0]
call fcn.004f8300
test eax, eax
je 0x565f59
cmp dword [esp + 0x2c], 0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], eax
je 0x565ed5
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
push 1
push ebx
lea edx, [esp + 0xbc]
mov dword [esp + 0x78], eax
push edx
mov dword [esp + 0x80], ecx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x284]
push ecx
lea ecx, [esp + 0x208]
call fcn.004f07c0
push eax
lea ecx, [esp + 0x290]
mov byte [esp + 0x414], 0x15
call fcn.004f1bb0
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x410], 8
call fcn.004f08d0
lea edx, [esp + 0x274]
push edx
lea ecx, [esp + 0x240]
call fcn.004f3090
jmp 0x565f59
push 0
lea ecx, [esp + 0x290]
call fcn.004f2a70
mov eax, dword [esp + 0x25c]
test al, 2
jne 0x565f8d
cwde
and eax, 0xfffffffb
cmp ax, 2
je 0x565f8d
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x23c]
push eax
call fcn.0056ab50
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2a8], 0
jle 0x565fe3
lea ecx, [esp + 0x28c]
call fcn.004f2e40
fcomp qword [0x5fd538]
fnstsw ax
test ah, 5
jp 0x565fe3
lea ecx, [esp + 0x28c]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
mov edx, dword [esp + 0x298]
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
jmp 0x566077
mov ecx, dword [esp + 0x248]
mov edx, dword [esp + 0x24c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x56607e
fstp st(0)
cmp word [esp + 0x6c], 2
je 0x566049
lea ecx, [esp + 0x23c]
call fcn.004f1c00
test eax, eax
je 0x566049
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x248]
push eax
call fcn.0056aae0
mov ecx, dword [esp + 0x248]
mov edx, dword [esp + 0x24c]
inc edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x56607a
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x23c]
push eax
call fcn.0056ab50
mov ecx, dword [esp + 0x248]
mov edx, dword [esp + 0x24c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
add edi, 3
mov dword [esp + 0x14], edi
add dword [esp + 0x18], 3
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x3c]
jl 0x564b12
jmp 0x5661b1
lea ecx, [esp + 0x23c]
push ecx
mov ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [esp + 0x14], 3
jmp 0x5661b1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], edx
push ecx
lea edx, [esp + 0x244]
push edx
mov dword [esp + 0x7c], eax
call fcn.004fbee0
add esp, 8
test eax, eax
jne 0x56618a
lea eax, [esp + 0x23c]
push eax
lea ecx, [esp + 0x330]
call fcn.004f29d0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x70]
mov dword [esp + 0x70], ecx
push eax
lea ecx, [esp + 0x330]
mov byte [esp + 0x414], 0x14
mov dword [esp + 0x78], edx
call fcn.004f3090
lea ecx, [esp + 0x32c]
call fcn.004f2e40
fcomp qword [esp + 0x7c]
fnstsw ax
test ah, 5
jp 0x566155
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x70]
mov dword [esp + 0x70], ecx
push eax
lea ecx, [esp + 0x240]
mov dword [esp + 0x78], edx
call fcn.004f3090
lea ecx, [esp + 0x23c]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add edi, 3
lea ecx, [esp + 0x32c]
mov dword [esp + 0x14], edi
mov byte [esp + 0x410], 8
call fcn.004f08d0
jmp 0x5661b1
cmp word [esp + 0x6c], 2
jne 0x5661b1
mov ecx, edi
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x23c]
push edx
call fcn.0056ab50
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0xa0], 0
je 0x566357
cmp dword [ebp + 0xc], 0
je 0x566357
mov edi, dword [esp + 0x14]
mov eax, dword [0x633c6c]
add edi, 0xfffffffd
shl edi, 4
test byte [edi + eax + 2], 1
je 0x566357
lea ecx, [esp + 0x300]
call fcn.00516c60
mov edx, dword [0x633c6c]
lea ecx, [esp + 0x300]
push ecx
lea ecx, [edi + edx]
mov byte [esp + 0x414], 0x16
call fcn.0056ada0
lea eax, [esp + 0x300]
mov esi, 3
push eax
lea ecx, [esp + 0x354]
lea ebx, [esi - 1]
call fcn.0051b260
test eax, eax
je 0x566343
cmp dword [esp + 0x90], 0
je 0x566285
lea ecx, [esp + 0x304]
push ecx
lea ecx, [esp + 0xd0]
call fcn.0056aae0
mov eax, dword [0x633c6c]
lea edx, [esp + 0xcc]
push edx
lea ecx, [edi + eax]
mov byte [esp + 0x414], 0x17
call fcn.0058cd30
mov esi, ebx
lea ecx, [esp + 0xcc]
lea ebx, [esi - 1]
mov byte [esp + 0x410], 0x16
call fcn.00481ef0
lea ecx, [esp + 0x1ac]
call fcn.0045abd0
mov ecx, dword [esp + 0x1ec]
push ecx
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x418], 0x18
call fcn.0056ac30
mov edi, dword [esp + 0x14]
mov ecx, edi
sub ecx, esi
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x1ac]
push eax
call fcn.0058cd30
dec esi
cmp dword [esp + 0x9c], 0
je 0x566329
lea ecx, [esp + 0x30c]
push ecx
lea ecx, [esp + 0xd0]
call fcn.0056aae0
mov ecx, edi
sub ecx, esi
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0xcc]
push edx
mov byte [esp + 0x414], 0x19
call fcn.0058cd30
lea ecx, [esp + 0xcc]
dec ebx
mov byte [esp + 0x410], 0x18
call fcn.00481ef0
sub edi, ebx
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x14], edi
mov byte [esp + 0x410], 0x16
call fcn.00481ef0
lea ecx, [esp + 0x300]
mov byte [esp + 0x410], 8
call fcn.00516cb0
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x350]
mov dword [0x633c7c], eax
mov byte [esp + 0x410], 7
call fcn.00516cb0
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x410], 6
call fcn.005844b0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x410], 5
call fcn.004f7220
lea ecx, [esp + 0x58]
mov byte [esp + 0x410], 4
call fcn.004f7220
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x410], 3
call fcn.004f08d0
lea ecx, [esp + 0x268]
mov byte [esp + 0x410], 2
call fcn.004f08d0
lea ecx, [esp + 0x28c]
mov byte [esp + 0x410], 1
call fcn.004f08d0
lea ecx, [esp + 0x2b0]
mov byte [esp + 0x410], 0
call fcn.00516cb0
lea ecx, [esp + 0x23c]
mov dword [esp + 0x410], 0xffffffff
call fcn.00516cb0
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f0]
xor ecx, esp
call fcn.005bf276
mov esp, ebp
pop ebp
ret 8