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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x622918
mov eax, dword fs:[0]
push eax
sub esp, 0x400
mov eax, dword [0x682d00]
xor eax, esp
mov dword [esp + 0x3f8], eax
push ebx
push esi
push edi
mov eax, dword [0x682d00]
xor eax, esp
push eax
lea eax, [esp + 0x410]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.00553e70
mov ebx, eax
lea eax, [ebx*4]
push eax
mov ecx, edi
mov dword [esp + 0x34], ebx
call fcn.005437a0
lea ecx, [esp + 0x244]
call fcn.005726c0
xor edi, edi
lea ecx, [esp + 0x2b8]
mov dword [esp + 0x418], edi
call fcn.005726c0
lea ecx, [esp + 0x294]
mov byte [esp + 0x418], 1
call fcn.0051a860
lea ecx, [esp + 0x270]
mov byte [esp + 0x418], 2
call fcn.0051a860
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x418], 3
call fcn.0051a860
lea ecx, [esp + 0x5c]
mov byte [esp + 0x418], 4
call fcn.0051fdc0
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x418], 5
call fcn.0051fdc0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
inc eax
mov dword [esp + 0x78], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0x14], edi
sar eax, 1
mov edi, ebx
mov dword [esp + 0x2c], 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 + 0x1d8]
mov byte [esp + 0x418], 6
mov dword [esp + 0x20], eax
call fcn.005c7e10
lea ecx, [esp + 0x358]
mov byte [esp + 0x418], 7
call fcn.005726c0
mov ecx, dword [esi + 0x10]
xor eax, eax
test byte [edi + ecx - 0xe], 0x80
mov byte [esp + 0x418], 8
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
je 0x543ecc
lea eax, [ebx - 1]
push eax
lea edx, [esp + 0x1dc]
push edx
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00556770
lea ecx, [esp + 0x1d8]
call fcn.005c8250
mov dword [esp + 0xbc], eax
test eax, eax
je 0x543ecc
lea eax, [esp + 0x358]
push eax
lea ecx, [esp + 0x1dc]
call fcn.005c93d0
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 0x543e36
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 + 0x35c]
push eax
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x90], edx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x543e36
mov dword [esp + 0xb8], 1
mov edx, dword [esi + 0x10]
mov eax, 0x800
test word [edx + 2], ax
je 0x543e81
mov eax, edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 8]
lea eax, [esp + 0x364]
push eax
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x90], edx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x543e81
mov dword [esp + 0xb4], 1
mov edx, dword [esp + 0x34]
push edx
mov ecx, esi
call fcn.00551660
mov eax, dword [esi]
mov edx, dword [eax + 0x74]
lea ecx, [esp + 0x358]
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.00553e70
mov ecx, dword [esp + 0x368]
mov ebx, eax
mov eax, dword [esp + 0x364]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x138]
mov ecx, edx
push eax
xor edi, edi
push ecx
lea ecx, [esp + 0x340]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], edi
mov dword [esp + 0x140], 0x64
mov dword [esp + 0x144], edi
call fcn.0051aab0
push edi
push edi
push eax
lea ecx, [esp + 0x390]
mov byte [esp + 0x424], 9
call fcn.005726e0
push eax
lea ecx, [esp + 0x2bc]
mov byte [esp + 0x41c], 0xa
call fcn.00576c20
lea ecx, [esp + 0x384]
mov byte [esp + 0x418], 9
call fcn.00572710
lea ecx, [esp + 0x334]
mov byte [esp + 0x418], 8
call fcn.0051b350
push edi
lea ecx, [esp + 0x2bc]
call fcn.0051dbf0
mov edx, dword [esi + 0x10]
mov edi, ebx
shl edi, 4
test byte [edi + edx - 0xe], 1
lea ecx, [edi + edx - 0x10]
mov dword [esp + 0x98], 2
je 0x543fd3
lea eax, [esp + 0x2b8]
push eax
call fcn.00582680
lea ecx, [esp + 0x2b8]
call fcn.0051dfc0
fstp qword [esp + 0x194]
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x2bc]
call fcn.0051f340
mov edx, dword [eax]
mov dword [esp + 0xc0], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x10]
test byte [eax + 2], 0x80
je 0x54419d
test byte [eax + edi - 0xe], 1
jne 0x54419d
lea ecx, [esp + 0x334]
call fcn.005c7e10
push 0
lea ecx, [esp + 0x338]
push ecx
mov ecx, esi
mov byte [esp + 0x420], 0xb
call fcn.00556770
lea ecx, [esp + 0x334]
call fcn.005c8250
test eax, eax
je 0x544189
lea ecx, [esp + 0x308]
call fcn.005726c0
lea edx, [esp + 0x308]
push edx
lea ecx, [esp + 0x338]
mov byte [esp + 0x41c], 0xc
call fcn.005c93d0
xor eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + edi - 0xc]
add eax, edi
mov dword [esp + 0xd0], ecx
mov edx, dword [eax - 8]
lea eax, [esp + 0x30c]
push eax
lea ecx, [esp + 0xd4]
push ecx
mov dword [esp + 0xdc], edx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x544175
mov edx, dword [esi + 0x10]
mov eax, dword [edi + edx - 0x18]
mov ecx, dword [esp + 0x30c]
add edi, edx
mov edi, dword [edi - 0x1c]
mov edx, dword [esp + 0x310]
sub ecx, edi
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
sub edx, eax
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
mov edx, dword [esp + 0x328]
fild dword [esp + 0x31c]
mov ecx, edx
and ecx, 2
fld qword [0x642420]
fmul st(1), st(0)
fxch st(1)
fmulp st(3)
fimul dword [esp + 0x320]
fmulp st(1)
faddp st(1)
jne 0x544107
movsx eax, dx
and eax, 0xfffffffb
cmp ax, 1
jne 0x544107
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x544124
test cx, cx
jne 0x544173
movsx eax, dx
and eax, 0xfffffffb
test ax, ax
jne 0x544173
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x544175
jmp 0x544126
fstp st(0)
push 0
mov ecx, esi
call fcn.00551660
push 0
lea eax, [esp + 0x30c]
push eax
mov ecx, esi
call fcn.00551500
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00553e70
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 + 0x30], ebx
mov dword [esp + 0x20], edx
jmp 0x544175
fstp st(0)
lea ecx, [esp + 0x308]
mov byte [esp + 0x418], 0xb
call fcn.00572710
lea ecx, [esp + 0x334]
mov byte [esp + 0x418], 8
call fcn.005c7e90
mov dword [esp + 0x18], 0
test ebx, ebx
jle 0x5458d4
mov ebx, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x30]
shl ebx, 4
lea ecx, [ebx + eax]
mov edx, 0x800
mov dword [esp + 0x7c], ebx
test word [ecx + 2], dx
je 0x5447ea
lea eax, [esp + 0x50]
push eax
call fcn.005825e0
mov edx, dword [esi + 0x10]
dec edi
cmp dword [esp + 0x18], edi
jne 0x5441fe
mov ecx, 0x800
test word [edx + 2], cx
mov ecx, edx
je 0x54420f
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 8]
jmp 0x54422b
mov eax, 0x800
test word [ebx + edx + 0x12], ax
je 0x54421b
mov ecx, dword [esi + 0x10]
add ecx, ebx
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x18]
jmp 0x54422b
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 + 0x168], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x11c], ecx
push 0
mov dword [esp + 0x124], eax
mov eax, dword [ebx + edx + 0xc]
lea ecx, [esp + 0x168]
push ecx
lea edx, [esp + 0x17c]
push edx
push eax
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x104]
call fcn.005c7e40
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0x41c], 0xd
call fcn.005eea40
call fcn.005f9c80
mov dword [esp + 0x58], eax
cmp dword [esp + 0x18], edi
jne 0x5442bd
xor edi, edi
jmp 0x5442c2
mov edi, dword [esp + 0x18]
inc edi
mov eax, dword [esi + 0x10]
test byte [ebx + eax + 2], 0x80
jne 0x54444c
mov ebx, edi
shl ebx, 4
test byte [ebx + eax + 2], 0x80
je 0x54444c
lea ecx, [esp + 0x220]
call fcn.005c7e10
push edi
lea edx, [esp + 0x224]
push edx
mov ecx, esi
mov byte [esp + 0x420], 0xe
call fcn.00556770
lea ecx, [esp + 0x220]
call fcn.005c8250
test eax, eax
je 0x544438
mov eax, dword [esi + 0x10]
mov ebx, dword [ebx + eax + 0xc]
mov ecx, dword [esp + 0x2c]
add ebx, ecx
cmp dword [esp + 0x58], ebx
jge 0x544438
lea ecx, [esp + 0x3b0]
call fcn.005726c0
lea edx, [esp + 0x3b0]
push edx
lea ecx, [esp + 0x224]
mov byte [esp + 0x41c], 0xf
call fcn.005c93d0
push edi
mov ecx, esi
call fcn.00551660
push edi
lea eax, [esp + 0x3b4]
push eax
mov ecx, esi
call fcn.00551500
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov ecx, esi
call fcn.00553e70
mov ebx, eax
mov dword [esp + 0x30], ebx
test edi, edi
jne 0x5443f7
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x3b4]
mov dword [esp + 0x12c], edx
push ecx
lea edx, [esp + 0x130]
push edx
mov dword [esp + 0x138], eax
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x5443ef
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x17c]
mov dword [esp + 0x180], ecx
push edx
mov ecx, esi
mov dword [esp + 0x180], eax
call fcn.00556c60
inc ebx
mov dword [esp + 0x30], ebx
sub ebx, dword [esp + 0x34]
add dword [esp + 0x18], ebx
lea ecx, [esp + 0x3b0]
mov byte [esp + 0x418], 0xe
call fcn.00572710
lea ecx, [esp + 0x220]
mov byte [esp + 0x418], 0xd
call fcn.005c7e90
lea ecx, [esp + 0xf0]
mov byte [esp + 0x418], 8
call fcn.005c7e90
jmp 0x545884
lea ecx, [esp + 0x220]
mov byte [esp + 0x418], 0xd
call fcn.005c7e90
mov ecx, dword [esi + 0x10]
mov eax, dword [esp + 0x7c]
movsx eax, word [eax + ecx + 2]
mov ebx, dword [esp + 0x14]
and eax, 0x80
shr eax, 7
test eax, eax
je 0x5446f9
cmp dword [ebp + 0xc], 0
je 0x54454d
shl edi, 4
movsx eax, word [edi + ecx + 2]
test eax, 0x800
je 0x544541
test al, al
js 0x544541
lea ecx, [esp + 0xf0]
call fcn.005c8250
test eax, eax
je 0x544541
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + ecx + 0xc]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
add eax, ecx
cmp dword [esp + 0x58], eax
jl 0x5444c4
test edi, edi
jne 0x544541
lea ecx, [esp + 0x3dc]
call fcn.005726c0
lea edx, [esp + 0x3dc]
push edx
lea ecx, [esp + 0xf4]
mov byte [esp + 0x41c], 0x10
call fcn.005c93d0
push edi
mov ecx, esi
call fcn.00551660
push edi
lea eax, [esp + 0x3e0]
push eax
mov ecx, esi
call fcn.00551500
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00553e70
mov dword [esp + 0x30], eax
test edi, edi
jne 0x544535
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 + 0x3dc]
jmp 0x544623
mov edx, dword [esi + 0x10]
add edx, dword [esp + 0x7c]
jmp 0x54478f
test eax, eax
je 0x5446f9
lea ecx, [esp + 0xf0]
call fcn.005c8250
test eax, eax
je 0x5446f9
mov eax, dword [esi + 0x10]
shl edi, 4
movsx ecx, word [edi + eax + 2]
test ecx, 0x800
je 0x544649
test cl, cl
js 0x544649
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx + eax + 0xc]
mov edx, dword [esp + 0x2c]
add ecx, edx
cmp dword [esp + 0x58], ecx
jl 0x5445a7
cmp dword [esp + 0x18], 0
jne 0x544649
lea ecx, [esp + 0x384]
call fcn.005726c0
lea eax, [esp + 0x384]
push eax
lea ecx, [esp + 0xf4]
mov byte [esp + 0x41c], 0x11
call fcn.005c93d0
mov edi, dword [esp + 0x18]
push edi
mov ecx, esi
call fcn.00551660
push edi
lea ecx, [esp + 0x388]
push ecx
mov ecx, esi
call fcn.00551500
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00553e70
mov dword [esp + 0x30], eax
test edi, edi
jne 0x54461c
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 + 0x384]
mov byte [esp + 0x418], 0xd
call fcn.00572710
lea ecx, [esp + 0xf0]
mov byte [esp + 0x418], 8
call fcn.005c7e90
jmp 0x545884
mov edx, dword [esp + 0x7c]
mov ecx, 0x400
test word [edx + eax + 2], cx
je 0x5446ab
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xf4]
call fcn.005c93b0
mov edx, dword [0x683a94]
mov edi, ebx
lea ecx, [esp + 0x60]
shl edi, 4
push ecx
lea ecx, [edi + edx]
call fcn.005823c0
mov ecx, dword [0x683a94]
lea eax, [esp + 0x68]
push eax
lea ecx, [edi + ecx + 0x10]
call fcn.005823c0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
jmp 0x5447a5
lea ecx, [esp + 0x294]
push ecx
lea ecx, [esp + 0xf4]
call fcn.005c93d0
mov ecx, ebx
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x294]
push edx
call fcn.00582430
mov eax, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x2a4]
add ebx, 3
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], ebx
jmp 0x5447a5
mov ecx, dword [esi + 0x10]
mov edi, dword [esp + 0x7c]
push 0
add ecx, edi
call fcn.00582760
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.00524000
fcomp qword [0x6325c8]
add esp, 0xc
fnstsw ax
test ah, 5
jp 0x54478a
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xf0]
mov dword [esp + 0x10c], edx
call fcn.005c8250
test eax, eax
je 0x54478a
mov ecx, dword [esi + 0x10]
push 1
add ecx, edi
call fcn.00582760
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x2c]
add eax, edi
lea edx, [esp + 0x294]
mov dword [eax + 0xc], ecx
push edx
lea ecx, [esp + 0xf4]
call fcn.005c93d0
mov eax, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x2a4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov edx, dword [esi + 0x10]
add edx, edi
mov ecx, ebx
shl ecx, 4
add ecx, dword [0x683a94]
inc ebx
push edx
mov dword [esp + 0x18], ebx
call fcn.005ca660
mov eax, dword [esp + 0x50]
inc dword [esp + 0x18]
mov dword [esp + 0x78], 0
cmp dword [esp + 0x1c], eax
jne 0x5447c5
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x54]
je 0x5447d1
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x418], 8
call fcn.005c7e90
jmp 0x545884
lea eax, [esp + 0x244]
push eax
call fcn.00582680
lea ecx, [esp + 0x244]
call fcn.0051dfc0
fstp qword [esp + 0x8c]
lea ecx, [esp + 0x1b4]
push ecx
lea ecx, [esp + 0x248]
call fcn.0051f340
mov edx, dword [eax]
mov ecx, dword [esp + 0x264]
mov dword [esp + 0xc8], edx
mov eax, dword [eax + 4]
mov edx, ecx
and edx, 2
mov dword [esp + 0xcc], eax
je 0x544849
mov dword [esp + 0x58], 2
jmp 0x544856
movsx eax, cx
and eax, 0xfffffffb
movzx eax, ax
mov dword [esp + 0x58], eax
cmp edi, 3
jne 0x544874
test dx, dx
jne 0x545893
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x545893
cmp dword [esp + 0x78], 0
mov ebx, dword [esp + 0x18]
jne 0x544d3c
test ebx, ebx
jne 0x5448b7
cmp dword [esp + 0x2d4], ebx
je 0x5448b7
lea ecx, [esp + 0x2c4]
push ecx
lea edx, [esp + 0x24c]
push edx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x544d40
mov ecx, dword [esp + 0x264]
mov edi, dword [esp + 0x248]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24c]
sub edx, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
mov edx, ecx
and edx, 2
fild dword [esp + 0x25c]
fld qword [0x642420]
fmul st(1), st(0)
fxch st(1)
fmulp st(2)
fimul dword [esp + 0x258]
fmulp st(2)
faddp st(1)
jne 0x54491d
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x54491d
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x544946
test dx, dx
jne 0x5451b4
movsx eax, cx
and eax, 0xfffffffb
test ax, ax
jne 0x5451b4
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x5451b6
jmp 0x544948
fstp st(0)
mov ecx, dword [esp + 0x24c]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x5c]
mov dword [esp + 0x6c], ecx
push edx
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edi
call fcn.00520200
mov eax, dword [esp + 0x2c]
push 1
push eax
lea ecx, [esp + 0x64]
call fcn.0051ff60
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x274]
call fcn.0051c7f0
mov edx, dword [esp + 0x264]
and edx, 0xfffffff9
cmp dx, 1
jne 0x5449c4
mov eax, dword [esp + 0x260]
mov ebx, dword [esp + 0x2c]
sub eax, ebx
push eax
lea ecx, [esp + 0x274]
call fcn.0051dbf0
jmp 0x5449e2
mov ecx, dword [esp + 0x260]
mov edx, dword [esp + 0x2c]
add ecx, edx
push ecx
lea ecx, [esp + 0x274]
call fcn.0051dbf0
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x298]
call fcn.0051c7f0
push 0
lea ecx, [esp + 0x298]
call fcn.0051dbf0
mov edi, 1
cmp dword [esp + 0x28c], edi
mov dword [esp + 0x34], 0
jle 0x544cab
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x278]
push eax
call fcn.0052cde0
add esp, 0xc
test eax, eax
jle 0x544cab
cmp eax, 2
jne 0x544a5f
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x278]
push eax
call fcn.005c7bb0
add esp, 0xc
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x124]
mov dword [esp + 0x124], ecx
push eax
lea ecx, [esp + 0x278]
push ecx
mov dword [esp + 0x130], edx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x544cc9
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x274]
xor edi, edi
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], eax
call fcn.0051e0e0
mov edx, dword [esp + 0x260]
push edx
lea ecx, [esp + 0x274]
call fcn.0051dbf0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], eax
push edx
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x120], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x544b21
mov ecx, dword [esp + 0x248]
mov edx, dword [esp + 0x24c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov edi, 1
jmp 0x544b3d
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push 0
mov dword [esp + 0x70], ecx
push ebx
lea ecx, [esp + 0x64]
mov dword [esp + 0x70], eax
call fcn.0051ff60
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x544c9b
lea ecx, [esp + 0x270]
call fcn.0051dfc0
fst qword [esp + 0x9c]
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x544cc9
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x1c8]
call fcn.00520fb0
test eax, eax
je 0x544cc9
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
test edi, edi
je 0x544bc8
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
push 1
push ebx
mov dword [esp + 0x1b4], ecx
lea eax, [esp + 0x27c]
push eax
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x1bc], edx
push ecx
lea edx, [esp + 0xe8]
push edx
lea ecx, [esp + 0x210]
call fcn.0051b240
push eax
lea ecx, [esp + 0x298]
mov byte [esp + 0x41c], 0x13
call fcn.0051c7f0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x418], 8
call fcn.0051b350
mov eax, dword [esp + 0x264]
test al, 2
jne 0x544c77
cwde
and eax, 0xfffffffb
cmp ax, 2
je 0x544c77
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x278]
push ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x544c77
fld qword [esp + 0x9c]
mov dword [esp + 0x34], 1
fstp qword [esp + 0x8c]
jmp 0x544cc9
lea edx, [esp + 0x274]
push edx
lea ecx, [esp + 0x248]
call fcn.0051e0e0
fld qword [esp + 0x9c]
fstp qword [esp + 0x8c]
jmp 0x544cc9
push 0
lea ecx, [esp + 0x298]
call fcn.0051dbf0
jmp 0x544cc9
cmp dword [esp + 0x14], 0
jne 0x544cc9
mov ecx, dword [0x683a94]
lea eax, [esp + 0x248]
push eax
call fcn.005823c0
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2b0], 0
jle 0x544d0f
lea ecx, [esp + 0x294]
call fcn.0051dfc0
fcomp qword [0x642b90]
fnstsw ax
test ah, 5
jp 0x544d0f
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x294]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x34], 0
je 0x5451b6
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x250]
push edx
call fcn.005823c0
inc edi
jmp 0x545865
test ebx, ebx
jne 0x544d4b
mov dword [esp + 0xb0], 1
lea edx, [esp + 0xc0]
push edx
lea eax, [esp + 0x24c]
push eax
lea ecx, [esp + 0xd0]
push ecx
call fcn.00524000
mov eax, dword [esp + 0x270]
mov edx, dword [esp + 0x2e4]
mov edi, dword [esp + 0x38]
and eax, 0xfffffff9
and edx, 0xfffffff9
xor ecx, ecx
add esp, 0xc
cmp ax, dx
sete cl
test ax, ax
je 0x544d9d
cmp dword [esp + 0x260], edi
jle 0x545166
fldz
fcompp
fnstsw ax
test ecx, ecx
je 0x544db1
test ah, 0x41
je 0x544dba
jmp 0x545168
test ah, 5
jp 0x545168
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x274]
call fcn.0051c7f0
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x2e8]
call fcn.0051c7f0
mov edx, dword [esp + 0x264]
and edx, 0xfffffff9
cmp dx, 1
jne 0x544dfe
mov eax, dword [esp + 0x260]
sub eax, edi
push eax
jmp 0x544e08
mov ecx, dword [esp + 0x260]
add ecx, edi
push ecx
lea ecx, [esp + 0x274]
call fcn.0051dbf0
mov edx, dword [esp + 0x2d8]
and edx, 0xfffffff9
cmp dx, 1
jne 0x544e30
mov eax, dword [esp + 0x2d4]
sub eax, edi
push eax
jmp 0x544e3a
mov ecx, dword [esp + 0x2d4]
add ecx, edi
push ecx
lea ecx, [esp + 0x2e8]
call fcn.0051dbf0
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x298]
call fcn.0051c7f0
push 0
lea ecx, [esp + 0x298]
call fcn.0051dbf0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x2e8]
push ecx
lea edx, [esp + 0x278]
push edx
call fcn.0052c970
add esp, 0xc
test eax, eax
jle 0x5450b9
cmp eax, 2
jne 0x544eac
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x278]
push edx
call fcn.005c7bb0
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 + 0x278]
push eax
mov dword [esp + 0x1b0], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x544f1e
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x14c]
mov dword [esp + 0x14c], ecx
push eax
lea ecx, [esp + 0x274]
mov dword [esp + 0x154], edx
call fcn.0051e0e0
mov ecx, dword [esp + 0x260]
push ecx
lea ecx, [esp + 0x274]
call fcn.0051dbf0
jmp 0x544f32
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x274]
call fcn.0051c7f0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x184]
mov dword [esp + 0x184], eax
push edx
lea eax, [esp + 0x2f4]
push eax
mov dword [esp + 0x190], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x544fa4
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x15c]
mov dword [esp + 0x15c], ecx
push eax
lea ecx, [esp + 0x2e8]
mov dword [esp + 0x164], edx
call fcn.0051e210
mov ecx, dword [esp + 0x2d4]
push ecx
lea ecx, [esp + 0x2e8]
call fcn.0051dbf0
jmp 0x544fb8
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x2e8]
call fcn.0051c7f0
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x2f4]
push ecx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x5450b9
lea ecx, [esp + 0x270]
call fcn.0051dfc0
fstp qword [esp + 0x34]
lea ecx, [esp + 0x2e4]
call fcn.0051dfc0
fld qword [esp + 0x34]
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x5450b7
fcomp qword [esp + 0x194]
fnstsw ax
test ah, 5
jp 0x5450b9
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
push 1
push edi
lea ecx, [esp + 0x27c]
push ecx
mov dword [esp + 0x198], edx
lea edx, [esp + 0x198]
mov dword [esp + 0x19c], eax
push edx
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x210]
call fcn.0051b240
push eax
lea ecx, [esp + 0x298]
mov byte [esp + 0x41c], 0x12
call fcn.0051c7f0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x418], 8
call fcn.0051b350
lea ecx, [esp + 0x274]
push ecx
lea ecx, [esp + 0x248]
call fcn.0051e0e0
lea edx, [esp + 0x2f0]
push edx
lea ecx, [esp + 0x2bc]
call fcn.0051e210
fld qword [esp + 0x34]
fstp qword [esp + 0x8c]
jmp 0x5450b9
fstp st(0)
test ebx, ebx
jle 0x54511a
cmp word [esp + 0x98], 2
je 0x5450f7
lea ecx, [esp + 0x2b8]
call fcn.0051c840
test eax, eax
je 0x5450f7
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x2c4]
push eax
call fcn.005823c0
inc edi
jmp 0x545116
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x2b8]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2b0], 0
jle 0x5451b6
lea ecx, [esp + 0x294]
call fcn.0051dfc0
fcomp qword [0x642b90]
fnstsw ax
test ah, 5
jp 0x5451b6
lea edx, [esp + 0x294]
push edx
mov edi, dword [esp + 0x18]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5451b6
fstp st(0)
test ebx, ebx
jle 0x5451b6
cmp word [esp + 0x98], 2
je 0x5451aa
lea ecx, [esp + 0x2b8]
call fcn.0051c840
test eax, eax
je 0x5451aa
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x2c4]
push eax
call fcn.005823c0
inc edi
mov dword [esp + 0x14], edi
jmp 0x5451b6
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x545149
fstp st(0)
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
add edx, 0xfffffffd
mov dword [esp + 0x78], 0
cmp eax, edx
jne 0x54531c
mov edi, dword [esp + 0x14]
test edi, edi
jle 0x545206
mov ecx, dword [0x683a94]
mov eax, 0x800
test word [ecx + 2], ax
je 0x5451f6
lea edx, [esp + 0x24]
push edx
call fcn.005825e0
jmp 0x545231
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x28], ecx
jmp 0x545231
mov ecx, dword [esi + 0x10]
mov edx, 0x800
test word [ecx + 2], dx
je 0x545220
lea eax, [esp + 0x24]
push eax
call fcn.005825e0
jmp 0x545231
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 + 0xb0], 0
je 0x545344
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x70]
mov dword [esp + 0x70], ecx
push eax
lea ecx, [esp + 0x24c]
push ecx
mov dword [esp + 0x7c], edx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x5458ad
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x338]
call fcn.0051db50
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x70]
mov dword [esp + 0x74], ecx
push edx
lea ecx, [esp + 0x338]
mov byte [esp + 0x41c], 0x14
mov dword [esp + 0x74], eax
call fcn.0051e210
lea ecx, [esp + 0x334]
call fcn.0051dfc0
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x5452e4
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x70]
mov dword [esp + 0x74], ecx
push edx
lea ecx, [esp + 0x248]
mov dword [esp + 0x74], eax
call fcn.0051e210
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x244]
push eax
call fcn.00582430
add edi, 3
lea ecx, [esp + 0x334]
mov dword [esp + 0x14], edi
mov byte [esp + 0x418], 8
call fcn.0051b350
jmp 0x5458d4
mov ecx, dword [esi + 0x10]
add eax, 3
shl eax, 4
add ecx, eax
mov edx, 0x800
test word [ecx + 2], dx
je 0x5453ff
lea eax, [esp + 0x24]
push eax
call fcn.005825e0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x250]
lea ecx, [esp + 0x244]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
fild dword [esp + 0x34]
sub eax, dword [esp + 0x254]
fstp qword [esp + 0x7c]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fstp qword [esp + 0x9c]
call fcn.0051b390
fchs
lea ecx, [esp + 0x244]
fmul qword [esp + 0x9c]
fstp qword [esp + 0x9c]
call fcn.0051b360
mov ecx, dword [esp + 0x264]
fchs
fmul qword [esp + 0x7c]
mov edx, ecx
and edx, 2
fadd qword [esp + 0x9c]
jne 0x5453d3
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x5453d3
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x54549c
test dx, dx
jne 0x54582c
movsx eax, cx
and eax, 0xfffffffb
test ax, ax
jne 0x54582c
fldz
fcompp
fnstsw ax
test ah, 0x41
jne 0x54582e
jmp 0x54549e
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x7c]
lea eax, [edx + ecx]
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x48]
mov dword [esp + 0x28], eax
mov dword [esp + 0x170], eax
lea eax, [esp + 0x16c]
mov dword [esp + 0x16c], ecx
push eax
lea ecx, [esp + 0x254]
push ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x545340
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x2bc]
mov dword [esp + 0x7c], 1
call fcn.00576c20
fld qword [esp + 0x8c]
movzx eax, word [esp + 0x58]
fstp qword [esp + 0x194]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x98], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
jmp 0x54587f
fstp st(0)
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x250]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x5c]
mov dword [esp + 0x6c], ecx
push edx
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x6c], eax
call fcn.00520200
mov edi, dword [esp + 0x2c]
push 1
push edi
lea ecx, [esp + 0x64]
call fcn.0051ff60
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x274]
call fcn.0051c7f0
mov ecx, dword [esp + 0x264]
and ecx, 0xfffffff9
cmp cx, 1
lea ecx, [esp + 0x270]
jne 0x54551c
mov edx, dword [esp + 0x260]
sub edx, edi
push edx
jmp 0x545526
mov eax, dword [esp + 0x260]
add eax, edi
push eax
call fcn.0051dbf0
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x298]
call fcn.0051c7f0
push 0
lea ecx, [esp + 0x298]
call fcn.0051dbf0
cmp dword [esp + 0x28c], 1
jle 0x545782
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x278]
push ecx
call fcn.0052cde0
add esp, 0xc
test eax, eax
jle 0x545782
cmp eax, 2
jne 0x54559c
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x278]
push ecx
call fcn.005c7bb0
add esp, 0xc
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x13c]
mov dword [esp + 0x13c], edx
push ecx
lea edx, [esp + 0x280]
push edx
mov dword [esp + 0x148], eax
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x545782
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x144]
mov dword [esp + 0x148], ecx
push edx
lea ecx, [esp + 0x274]
xor ebx, ebx
mov dword [esp + 0x148], eax
call fcn.0051e210
mov eax, dword [esp + 0x260]
push eax
lea ecx, [esp + 0x274]
call fcn.0051dbf0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x154]
mov dword [esp + 0x154], ecx
push eax
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x160], edx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x54565e
mov edx, dword [esp + 0x250]
mov eax, dword [esp + 0x254]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov ebx, 1
jmp 0x54567a
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push 0
mov dword [esp + 0x68], ecx
push edi
lea ecx, [esp + 0x64]
mov dword [esp + 0x68], eax
call fcn.0051ff60
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x280]
push edx
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x545774
lea ecx, [esp + 0x270]
call fcn.0051dfc0
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x545782
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x1c8]
call fcn.00520fb0
test eax, eax
je 0x545782
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], edx
test ebx, ebx
je 0x5456fe
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], ecx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
push 1
push edi
lea ecx, [esp + 0xe8]
push ecx
mov dword [esp + 0x7c], edx
lea edx, [esp + 0x7c]
mov dword [esp + 0x80], eax
push edx
lea eax, [esp + 0x28c]
push eax
lea ecx, [esp + 0x210]
call fcn.0051b240
push eax
lea ecx, [esp + 0x298]
mov byte [esp + 0x41c], 0x15
call fcn.0051c7f0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x418], 8
call fcn.0051b350
lea ecx, [esp + 0x27c]
push ecx
lea ecx, [esp + 0x248]
call fcn.0051e210
jmp 0x545782
push 0
lea ecx, [esp + 0x298]
call fcn.0051dbf0
mov eax, dword [esp + 0x264]
test al, 2
jne 0x5457ba
cwde
and eax, 0xfffffffb
cmp ax, 2
je 0x5457ba
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x244]
push edx
call fcn.00582430
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2b0], 0
jle 0x545814
lea ecx, [esp + 0x294]
call fcn.0051dfc0
fcomp qword [0x642b90]
fnstsw ax
test ah, 5
jp 0x545814
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x294]
push eax
call fcn.00582430
mov ecx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
add edi, 3
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x54587b
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x54587f
fstp st(0)
cmp word [esp + 0x58], 2
je 0x54584a
lea ecx, [esp + 0x244]
call fcn.0051c840
test eax, eax
jne 0x544d1e
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x244]
push edx
call fcn.00582430
add edi, 3
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edi
add dword [esp + 0x18], 3
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x30]
jge 0x5458d4
jmp 0x5441ad
mov ecx, dword [0x683a94]
lea eax, [esp + 0x244]
push eax
call fcn.00582430
add dword [esp + 0x14], 3
jmp 0x5458d4
cmp word [esp + 0x58], 2
jne 0x5458d4
lea ecx, [esp + 0x244]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0xbc], 0
je 0x545a7b
cmp dword [ebp + 0xc], 0
je 0x545a7b
mov edi, dword [esp + 0x14]
mov edx, dword [0x683a94]
add edi, 0xfffffffd
shl edi, 4
test byte [edx + edi + 2], 1
je 0x545a7b
lea ecx, [esp + 0x308]
call fcn.005726c0
mov ecx, dword [0x683a94]
lea eax, [esp + 0x308]
push eax
add ecx, edi
mov byte [esp + 0x41c], 0x16
call fcn.00582680
lea edx, [esp + 0x308]
mov esi, 3
push edx
lea ecx, [esp + 0x35c]
lea ebx, [esi - 1]
call fcn.00576cc0
test eax, eax
je 0x545a67
cmp dword [esp + 0xb8], 0
je 0x5459a9
lea eax, [esp + 0x30c]
push eax
lea ecx, [esp + 0xa0]
call fcn.005823c0
mov edx, dword [0x683a94]
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [edx + edi]
mov byte [esp + 0x41c], 0x17
call fcn.005ca660
mov esi, ebx
lea ecx, [esp + 0x9c]
lea ebx, [esi - 1]
mov byte [esp + 0x418], 0x16
call fcn.0051a4a0
lea ecx, [esp + 0x1b4]
call fcn.005eec00
mov eax, dword [esp + 0x1f4]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x420], 0x18
call fcn.00582510
mov edi, dword [esp + 0x14]
mov ecx, edi
sub ecx, esi
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x1b4]
push edx
call fcn.005ca660
dec esi
cmp dword [esp + 0xb4], 0
je 0x545a4d
lea eax, [esp + 0x314]
push eax
lea ecx, [esp + 0xa0]
call fcn.005823c0
lea ecx, [esp + 0x9c]
push ecx
mov ecx, edi
sub ecx, esi
shl ecx, 4
add ecx, dword [0x683a94]
mov byte [esp + 0x41c], 0x19
call fcn.005ca660
lea ecx, [esp + 0x9c]
dec ebx
mov byte [esp + 0x418], 0x18
call fcn.0051a4a0
sub edi, ebx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x14], edi
mov byte [esp + 0x418], 0x16
call fcn.0051a4a0
lea ecx, [esp + 0x308]
mov byte [esp + 0x418], 8
call fcn.00572710
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x358]
mov dword [0x683aa4], edx
mov byte [esp + 0x418], 7
call fcn.00572710
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x418], 6
call fcn.005c7e90
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x418], 5
call fcn.0051fe50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x418], 4
call fcn.0051fe50
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x418], 3
call fcn.0051b350
lea ecx, [esp + 0x270]
mov byte [esp + 0x418], 2
call fcn.0051b350
lea ecx, [esp + 0x294]
mov byte [esp + 0x418], 1
call fcn.0051b350
lea ecx, [esp + 0x2b8]
mov byte [esp + 0x418], 0
call fcn.00572710
lea ecx, [esp + 0x244]
mov dword [esp + 0x418], 0xffffffff
call fcn.00572710
mov ecx, dword [esp + 0x410]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f8]
xor ecx, esp
call fcn.005f9aee
mov esp, ebp
pop ebp
ret 8