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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x624888
mov eax, dword fs:[0]
push eax
sub esp, 0x400
mov eax, dword [0x685e38]
xor eax, esp
mov dword [esp + 0x3f8], eax
push ebx
push esi
push edi
mov eax, dword [0x685e38]
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.00555520
mov ebx, eax
lea eax, [ebx*4]
push eax
mov ecx, edi
mov dword [esp + 0x34], ebx
call fcn.00544e60
lea ecx, [esp + 0x244]
call fcn.00573d50
xor edi, edi
lea ecx, [esp + 0x2b8]
mov dword [esp + 0x418], edi
call fcn.00573d50
lea ecx, [esp + 0x294]
mov byte [esp + 0x418], 1
call fcn.0051b930
lea ecx, [esp + 0x270]
mov byte [esp + 0x418], 2
call fcn.0051b930
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x418], 3
call fcn.0051b930
lea ecx, [esp + 0x5c]
mov byte [esp + 0x418], 4
call fcn.00520ea0
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x418], 5
call fcn.00520ea0
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.005c94d0
lea ecx, [esp + 0x358]
mov byte [esp + 0x418], 7
call fcn.00573d50
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 0x54558c
lea eax, [ebx - 1]
push eax
lea edx, [esp + 0x1dc]
push edx
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00557e20
lea ecx, [esp + 0x1d8]
call fcn.005c9900
mov dword [esp + 0xbc], eax
test eax, eax
je 0x54558c
lea eax, [esp + 0x358]
push eax
lea ecx, [esp + 0x1dc]
call fcn.005caa80
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 0x5454f6
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.00524de0
add esp, 8
test eax, eax
je 0x5454f6
mov dword [esp + 0xb8], 1
mov edx, dword [esi + 0x10]
mov eax, 0x800
test word [edx + 2], ax
je 0x545541
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.00524de0
add esp, 8
test eax, eax
je 0x545541
mov dword [esp + 0xb4], 1
mov edx, dword [esp + 0x34]
push edx
mov ecx, esi
call fcn.00552d10
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.00555520
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.0051bb80
push edi
push edi
push eax
lea ecx, [esp + 0x390]
mov byte [esp + 0x424], 9
call fcn.00573d70
push eax
lea ecx, [esp + 0x2bc]
mov byte [esp + 0x41c], 0xa
call fcn.005782b0
lea ecx, [esp + 0x384]
mov byte [esp + 0x418], 9
call fcn.00573da0
lea ecx, [esp + 0x334]
mov byte [esp + 0x418], 8
call fcn.0051c420
push edi
lea ecx, [esp + 0x2bc]
call fcn.0051ecd0
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 0x545693
lea eax, [esp + 0x2b8]
push eax
call fcn.00583d00
lea ecx, [esp + 0x2b8]
call fcn.0051f0a0
fstp qword [esp + 0x194]
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x2bc]
call fcn.00520420
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 0x54585d
test byte [eax + edi - 0xe], 1
jne 0x54585d
lea ecx, [esp + 0x334]
call fcn.005c94d0
push 0
lea ecx, [esp + 0x338]
push ecx
mov ecx, esi
mov byte [esp + 0x420], 0xb
call fcn.00557e20
lea ecx, [esp + 0x334]
call fcn.005c9900
test eax, eax
je 0x545849
lea ecx, [esp + 0x308]
call fcn.00573d50
lea edx, [esp + 0x308]
push edx
lea ecx, [esp + 0x338]
mov byte [esp + 0x41c], 0xc
call fcn.005caa80
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.00524de0
add esp, 8
test eax, eax
je 0x545835
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 [0x644828]
fmul st(1), st(0)
fxch st(1)
fmulp st(3)
fimul dword [esp + 0x320]
fmulp st(1)
faddp st(1)
jne 0x5457c7
movsx eax, dx
and eax, 0xfffffffb
cmp ax, 1
jne 0x5457c7
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x5457e4
test cx, cx
jne 0x545833
movsx eax, dx
and eax, 0xfffffffb
test ax, ax
jne 0x545833
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x545835
jmp 0x5457e6
fstp st(0)
push 0
mov ecx, esi
call fcn.00552d10
push 0
lea eax, [esp + 0x30c]
push eax
mov ecx, esi
call fcn.00552bb0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00555520
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 0x545835
fstp st(0)
lea ecx, [esp + 0x308]
mov byte [esp + 0x418], 0xb
call fcn.00573da0
lea ecx, [esp + 0x334]
mov byte [esp + 0x418], 8
call fcn.005ca810
mov dword [esp + 0x18], 0
test ebx, ebx
jle 0x546f94
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 0x545eaa
lea eax, [esp + 0x50]
push eax
call fcn.00583c60
mov edx, dword [esi + 0x10]
dec edi
cmp dword [esp + 0x18], edi
jne 0x5458be
mov ecx, 0x800
test word [edx + 2], cx
mov ecx, edx
je 0x5458cf
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 8]
jmp 0x5458eb
mov eax, 0x800
test word [ebx + edx + 0x12], ax
je 0x5458db
mov ecx, dword [esi + 0x10]
add ecx, ebx
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x18]
jmp 0x5458eb
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.005c9500
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0x41c], 0xd
call fcn.005f0500
call fcn.005fbb60
mov dword [esp + 0x58], eax
cmp dword [esp + 0x18], edi
jne 0x54597d
xor edi, edi
jmp 0x545982
mov edi, dword [esp + 0x18]
inc edi
mov eax, dword [esi + 0x10]
test byte [ebx + eax + 2], 0x80
jne 0x545b0c
mov ebx, edi
shl ebx, 4
test byte [ebx + eax + 2], 0x80
je 0x545b0c
lea ecx, [esp + 0x220]
call fcn.005c94d0
push edi
lea edx, [esp + 0x224]
push edx
mov ecx, esi
mov byte [esp + 0x420], 0xe
call fcn.00557e20
lea ecx, [esp + 0x220]
call fcn.005c9900
test eax, eax
je 0x545af8
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 0x545af8
lea ecx, [esp + 0x3b0]
call fcn.00573d50
lea edx, [esp + 0x3b0]
push edx
lea ecx, [esp + 0x224]
mov byte [esp + 0x41c], 0xf
call fcn.005caa80
push edi
mov ecx, esi
call fcn.00552d10
push edi
lea eax, [esp + 0x3b4]
push eax
mov ecx, esi
call fcn.00552bb0
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.00555520
mov ebx, eax
mov dword [esp + 0x30], ebx
test edi, edi
jne 0x545ab7
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.00524de0
add esp, 8
test eax, eax
je 0x545aaf
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.00558310
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.00573da0
lea ecx, [esp + 0x220]
mov byte [esp + 0x418], 0xd
call fcn.005ca810
lea ecx, [esp + 0xf0]
mov byte [esp + 0x418], 8
call fcn.005ca810
jmp 0x546f44
lea ecx, [esp + 0x220]
mov byte [esp + 0x418], 0xd
call fcn.005ca810
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 0x545db9
cmp dword [ebp + 0xc], 0
je 0x545c0d
shl edi, 4
movsx eax, word [edi + ecx + 2]
test eax, 0x800
je 0x545c01
test al, al
js 0x545c01
lea ecx, [esp + 0xf0]
call fcn.005c9900
test eax, eax
je 0x545c01
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 0x545b84
test edi, edi
jne 0x545c01
lea ecx, [esp + 0x3dc]
call fcn.00573d50
lea edx, [esp + 0x3dc]
push edx
lea ecx, [esp + 0xf4]
mov byte [esp + 0x41c], 0x10
call fcn.005caa80
push edi
mov ecx, esi
call fcn.00552d10
push edi
lea eax, [esp + 0x3e0]
push eax
mov ecx, esi
call fcn.00552bb0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00555520
mov dword [esp + 0x30], eax
test edi, edi
jne 0x545bf5
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 0x545ce3
mov edx, dword [esi + 0x10]
add edx, dword [esp + 0x7c]
jmp 0x545e4f
test eax, eax
je 0x545db9
lea ecx, [esp + 0xf0]
call fcn.005c9900
test eax, eax
je 0x545db9
mov eax, dword [esi + 0x10]
shl edi, 4
movsx ecx, word [edi + eax + 2]
test ecx, 0x800
je 0x545d09
test cl, cl
js 0x545d09
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 0x545c67
cmp dword [esp + 0x18], 0
jne 0x545d09
lea ecx, [esp + 0x384]
call fcn.00573d50
lea eax, [esp + 0x384]
push eax
lea ecx, [esp + 0xf4]
mov byte [esp + 0x41c], 0x11
call fcn.005caa80
mov edi, dword [esp + 0x18]
push edi
mov ecx, esi
call fcn.00552d10
push edi
lea ecx, [esp + 0x388]
push ecx
mov ecx, esi
call fcn.00552bb0
mov edx, dword [esi]
mov eax, dword [edx + 0x78]
push 1
mov ecx, esi
call eax
mov ecx, esi
call fcn.00555520
mov dword [esp + 0x30], eax
test edi, edi
jne 0x545cdc
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.00573da0
lea ecx, [esp + 0xf0]
mov byte [esp + 0x418], 8
call fcn.005ca810
jmp 0x546f44
mov edx, dword [esp + 0x7c]
mov ecx, 0x400
test word [edx + eax + 2], cx
je 0x545d6b
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xf4]
call fcn.005caa60
mov edx, dword [0x686bbc]
mov edi, ebx
lea ecx, [esp + 0x60]
shl edi, 4
push ecx
lea ecx, [edi + edx]
call fcn.00583a80
mov ecx, dword [0x686bbc]
lea eax, [esp + 0x68]
push eax
lea ecx, [edi + ecx + 0x10]
call fcn.00583a80
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
jmp 0x545e65
lea ecx, [esp + 0x294]
push ecx
lea ecx, [esp + 0xf4]
call fcn.005caa80
mov ecx, ebx
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x294]
push edx
call fcn.00583ab0
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 0x545e65
mov ecx, dword [esi + 0x10]
mov edi, dword [esp + 0x7c]
push 0
add ecx, edi
call fcn.00583de0
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.005251f0
fcomp qword [0x6345d0]
add esp, 0xc
fnstsw ax
test ah, 5
jp 0x545e4a
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xf0]
mov dword [esp + 0x10c], edx
call fcn.005c9900
test eax, eax
je 0x545e4a
mov ecx, dword [esi + 0x10]
push 1
add ecx, edi
call fcn.00583de0
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.005caa80
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 [0x686bbc]
inc ebx
push edx
mov dword [esp + 0x18], ebx
call fcn.005cbd10
mov eax, dword [esp + 0x50]
inc dword [esp + 0x18]
mov dword [esp + 0x78], 0
cmp dword [esp + 0x1c], eax
jne 0x545e85
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x54]
je 0x545e91
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.005ca810
jmp 0x546f44
lea eax, [esp + 0x244]
push eax
call fcn.00583d00
lea ecx, [esp + 0x244]
call fcn.0051f0a0
fstp qword [esp + 0x8c]
lea ecx, [esp + 0x1b4]
push ecx
lea ecx, [esp + 0x248]
call fcn.00520420
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 0x545f09
mov dword [esp + 0x58], 2
jmp 0x545f16
movsx eax, cx
and eax, 0xfffffffb
movzx eax, ax
mov dword [esp + 0x58], eax
cmp edi, 3
jne 0x545f34
test dx, dx
jne 0x546f53
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x546f53
cmp dword [esp + 0x78], 0
mov ebx, dword [esp + 0x18]
jne 0x5463fc
test ebx, ebx
jne 0x545f77
cmp dword [esp + 0x2d4], ebx
je 0x545f77
lea ecx, [esp + 0x2c4]
push ecx
lea edx, [esp + 0x24c]
push edx
call fcn.00524de0
add esp, 8
test eax, eax
jne 0x546400
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 [0x644828]
fmul st(1), st(0)
fxch st(1)
fmulp st(2)
fimul dword [esp + 0x258]
fmulp st(2)
faddp st(1)
jne 0x545fdd
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x545fdd
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x546006
test dx, dx
jne 0x546874
movsx eax, cx
and eax, 0xfffffffb
test ax, ax
jne 0x546874
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x546876
jmp 0x546008
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.00521330
mov eax, dword [esp + 0x2c]
push 1
push eax
lea ecx, [esp + 0x64]
call fcn.00521090
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x274]
call fcn.0051d8c0
mov edx, dword [esp + 0x264]
and edx, 0xfffffff9
cmp dx, 1
jne 0x546084
mov eax, dword [esp + 0x260]
mov ebx, dword [esp + 0x2c]
sub eax, ebx
push eax
lea ecx, [esp + 0x274]
call fcn.0051ecd0
jmp 0x5460a2
mov ecx, dword [esp + 0x260]
mov edx, dword [esp + 0x2c]
add ecx, edx
push ecx
lea ecx, [esp + 0x274]
call fcn.0051ecd0
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x298]
call fcn.0051d8c0
push 0
lea ecx, [esp + 0x298]
call fcn.0051ecd0
mov edi, 1
cmp dword [esp + 0x28c], edi
mov dword [esp + 0x34], 0
jle 0x54636b
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x278]
push eax
call fcn.0052df60
add esp, 0xc
test eax, eax
jle 0x54636b
cmp eax, 2
jne 0x54611f
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x278]
push eax
call fcn.005c9270
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.00524de0
add esp, 8
test eax, eax
jne 0x546389
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.0051f1c0
mov edx, dword [esp + 0x260]
push edx
lea ecx, [esp + 0x274]
call fcn.0051ecd0
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.00524de0
add esp, 8
test eax, eax
je 0x5461e1
mov ecx, dword [esp + 0x248]
mov edx, dword [esp + 0x24c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov edi, 1
jmp 0x5461fd
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.00521090
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.00524de0
add esp, 8
test eax, eax
jne 0x54635b
lea ecx, [esp + 0x270]
call fcn.0051f0a0
fst qword [esp + 0x9c]
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x546389
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x1c8]
call fcn.005220d0
test eax, eax
je 0x546389
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
test edi, edi
je 0x546288
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.0051c310
push eax
lea ecx, [esp + 0x298]
mov byte [esp + 0x41c], 0x13
call fcn.0051d8c0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x418], 8
call fcn.0051c420
mov eax, dword [esp + 0x264]
test al, 2
jne 0x546337
cwde
and eax, 0xfffffffb
cmp ax, 2
je 0x546337
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x278]
push ecx
call fcn.00524de0
add esp, 8
test eax, eax
je 0x546337
fld qword [esp + 0x9c]
mov dword [esp + 0x34], 1
fstp qword [esp + 0x8c]
jmp 0x546389
lea edx, [esp + 0x274]
push edx
lea ecx, [esp + 0x248]
call fcn.0051f1c0
fld qword [esp + 0x9c]
fstp qword [esp + 0x8c]
jmp 0x546389
push 0
lea ecx, [esp + 0x298]
call fcn.0051ecd0
jmp 0x546389
cmp dword [esp + 0x14], 0
jne 0x546389
mov ecx, dword [0x686bbc]
lea eax, [esp + 0x248]
push eax
call fcn.00583a80
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2b0], 0
jle 0x5463cf
lea ecx, [esp + 0x294]
call fcn.0051f0a0
fcomp qword [0x644f98]
fnstsw ax
test ah, 5
jp 0x5463cf
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x294]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x34], 0
je 0x546876
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x250]
push edx
call fcn.00583a80
inc edi
jmp 0x546f25
test ebx, ebx
jne 0x54640b
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.005251f0
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 0x54645d
cmp dword [esp + 0x260], edi
jle 0x546826
fldz
fcompp
fnstsw ax
test ecx, ecx
je 0x546471
test ah, 0x41
je 0x54647a
jmp 0x546828
test ah, 5
jp 0x546828
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x274]
call fcn.0051d8c0
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x2e8]
call fcn.0051d8c0
mov edx, dword [esp + 0x264]
and edx, 0xfffffff9
cmp dx, 1
jne 0x5464be
mov eax, dword [esp + 0x260]
sub eax, edi
push eax
jmp 0x5464c8
mov ecx, dword [esp + 0x260]
add ecx, edi
push ecx
lea ecx, [esp + 0x274]
call fcn.0051ecd0
mov edx, dword [esp + 0x2d8]
and edx, 0xfffffff9
cmp dx, 1
jne 0x5464f0
mov eax, dword [esp + 0x2d4]
sub eax, edi
push eax
jmp 0x5464fa
mov ecx, dword [esp + 0x2d4]
add ecx, edi
push ecx
lea ecx, [esp + 0x2e8]
call fcn.0051ecd0
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x298]
call fcn.0051d8c0
push 0
lea ecx, [esp + 0x298]
call fcn.0051ecd0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x2e8]
push ecx
lea edx, [esp + 0x278]
push edx
call fcn.0052daf0
add esp, 0xc
test eax, eax
jle 0x546779
cmp eax, 2
jne 0x54656c
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x278]
push edx
call fcn.005c9270
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.00524de0
add esp, 8
test eax, eax
jne 0x5465de
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.0051f1c0
mov ecx, dword [esp + 0x260]
push ecx
lea ecx, [esp + 0x274]
call fcn.0051ecd0
jmp 0x5465f2
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x274]
call fcn.0051d8c0
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.00524de0
add esp, 8
test eax, eax
jne 0x546664
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.0051f2f0
mov ecx, dword [esp + 0x2d4]
push ecx
lea ecx, [esp + 0x2e8]
call fcn.0051ecd0
jmp 0x546678
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x2e8]
call fcn.0051d8c0
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x2f4]
push ecx
call fcn.00524de0
add esp, 8
test eax, eax
jne 0x546779
lea ecx, [esp + 0x270]
call fcn.0051f0a0
fstp qword [esp + 0x34]
lea ecx, [esp + 0x2e4]
call fcn.0051f0a0
fld qword [esp + 0x34]
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x546777
fcomp qword [esp + 0x194]
fnstsw ax
test ah, 5
jp 0x546779
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.0051c310
push eax
lea ecx, [esp + 0x298]
mov byte [esp + 0x41c], 0x12
call fcn.0051d8c0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x418], 8
call fcn.0051c420
lea ecx, [esp + 0x274]
push ecx
lea ecx, [esp + 0x248]
call fcn.0051f1c0
lea edx, [esp + 0x2f0]
push edx
lea ecx, [esp + 0x2bc]
call fcn.0051f2f0
fld qword [esp + 0x34]
fstp qword [esp + 0x8c]
jmp 0x546779
fstp st(0)
test ebx, ebx
jle 0x5467da
cmp word [esp + 0x98], 2
je 0x5467b7
lea ecx, [esp + 0x2b8]
call fcn.0051d910
test eax, eax
je 0x5467b7
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x2c4]
push eax
call fcn.00583a80
inc edi
jmp 0x5467d6
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x2b8]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2b0], 0
jle 0x546876
lea ecx, [esp + 0x294]
call fcn.0051f0a0
fcomp qword [0x644f98]
fnstsw ax
test ah, 5
jp 0x546876
lea edx, [esp + 0x294]
push edx
mov edi, dword [esp + 0x18]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x546876
fstp st(0)
test ebx, ebx
jle 0x546876
cmp word [esp + 0x98], 2
je 0x54686a
lea ecx, [esp + 0x2b8]
call fcn.0051d910
test eax, eax
je 0x54686a
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x2c4]
push eax
call fcn.00583a80
inc edi
mov dword [esp + 0x14], edi
jmp 0x546876
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x546809
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 0x5469dc
mov edi, dword [esp + 0x14]
test edi, edi
jle 0x5468c6
mov ecx, dword [0x686bbc]
mov eax, 0x800
test word [ecx + 2], ax
je 0x5468b6
lea edx, [esp + 0x24]
push edx
call fcn.00583c60
jmp 0x5468f1
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x28], ecx
jmp 0x5468f1
mov ecx, dword [esi + 0x10]
mov edx, 0x800
test word [ecx + 2], dx
je 0x5468e0
lea eax, [esp + 0x24]
push eax
call fcn.00583c60
jmp 0x5468f1
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 0x546a04
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.00524de0
add esp, 8
test eax, eax
jne 0x546f6d
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x338]
call fcn.0051ec30
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.0051f2f0
lea ecx, [esp + 0x334]
call fcn.0051f0a0
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x5469a4
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.0051f2f0
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x244]
push eax
call fcn.00583ab0
add edi, 3
lea ecx, [esp + 0x334]
mov dword [esp + 0x14], edi
mov byte [esp + 0x418], 8
call fcn.0051c420
jmp 0x546f94
mov ecx, dword [esi + 0x10]
add eax, 3
shl eax, 4
add ecx, eax
mov edx, 0x800
test word [ecx + 2], dx
je 0x546abf
lea eax, [esp + 0x24]
push eax
call fcn.00583c60
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.0051c460
fchs
lea ecx, [esp + 0x244]
fmul qword [esp + 0x9c]
fstp qword [esp + 0x9c]
call fcn.0051c430
mov ecx, dword [esp + 0x264]
fchs
fmul qword [esp + 0x7c]
mov edx, ecx
and edx, 2
fadd qword [esp + 0x9c]
jne 0x546a93
movsx eax, cx
and eax, 0xfffffffb
cmp ax, 1
jne 0x546a93
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x546b5c
test dx, dx
jne 0x546eec
movsx eax, cx
and eax, 0xfffffffb
test ax, ax
jne 0x546eec
fldz
fcompp
fnstsw ax
test ah, 0x41
jne 0x546eee
jmp 0x546b5e
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.00524de0
add esp, 8
test eax, eax
je 0x546a00
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x2bc]
mov dword [esp + 0x7c], 1
call fcn.005782b0
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 0x546f3f
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.00521330
mov edi, dword [esp + 0x2c]
push 1
push edi
lea ecx, [esp + 0x64]
call fcn.00521090
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x274]
call fcn.0051d8c0
mov ecx, dword [esp + 0x264]
and ecx, 0xfffffff9
cmp cx, 1
lea ecx, [esp + 0x270]
jne 0x546bdc
mov edx, dword [esp + 0x260]
sub edx, edi
push edx
jmp 0x546be6
mov eax, dword [esp + 0x260]
add eax, edi
push eax
call fcn.0051ecd0
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x298]
call fcn.0051d8c0
push 0
lea ecx, [esp + 0x298]
call fcn.0051ecd0
cmp dword [esp + 0x28c], 1
jle 0x546e42
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x278]
push ecx
call fcn.0052df60
add esp, 0xc
test eax, eax
jle 0x546e42
cmp eax, 2
jne 0x546c5c
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x278]
push ecx
call fcn.005c9270
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.00524de0
add esp, 8
test eax, eax
jne 0x546e42
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.0051f2f0
mov eax, dword [esp + 0x260]
push eax
lea ecx, [esp + 0x274]
call fcn.0051ecd0
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.00524de0
add esp, 8
test eax, eax
je 0x546d1e
mov edx, dword [esp + 0x250]
mov eax, dword [esp + 0x254]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov ebx, 1
jmp 0x546d3a
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.00521090
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x280]
push edx
call fcn.00524de0
add esp, 8
test eax, eax
jne 0x546e34
lea ecx, [esp + 0x270]
call fcn.0051f0a0
fcomp qword [esp + 0x8c]
fnstsw ax
test ah, 5
jp 0x546e42
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x1c8]
call fcn.005220d0
test eax, eax
je 0x546e42
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], edx
test ebx, ebx
je 0x546dbe
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.0051c310
push eax
lea ecx, [esp + 0x298]
mov byte [esp + 0x41c], 0x15
call fcn.0051d8c0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x418], 8
call fcn.0051c420
lea ecx, [esp + 0x27c]
push ecx
lea ecx, [esp + 0x248]
call fcn.0051f2f0
jmp 0x546e42
push 0
lea ecx, [esp + 0x298]
call fcn.0051ecd0
mov eax, dword [esp + 0x264]
test al, 2
jne 0x546e7a
cwde
and eax, 0xfffffffb
cmp ax, 2
je 0x546e7a
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x244]
push edx
call fcn.00583ab0
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x2b0], 0
jle 0x546ed4
lea ecx, [esp + 0x294]
call fcn.0051f0a0
fcomp qword [0x644f98]
fnstsw ax
test ah, 5
jp 0x546ed4
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x294]
push eax
call fcn.00583ab0
mov ecx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
add edi, 3
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x546f3b
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x546f3f
fstp st(0)
cmp word [esp + 0x58], 2
je 0x546f0a
lea ecx, [esp + 0x244]
call fcn.0051d910
test eax, eax
jne 0x5463de
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x244]
push edx
call fcn.00583ab0
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 0x546f94
jmp 0x54586d
mov ecx, dword [0x686bbc]
lea eax, [esp + 0x244]
push eax
call fcn.00583ab0
add dword [esp + 0x14], 3
jmp 0x546f94
cmp word [esp + 0x58], 2
jne 0x546f94
lea ecx, [esp + 0x244]
push ecx
mov ecx, edi
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0xbc], 0
je 0x54713b
cmp dword [ebp + 0xc], 0
je 0x54713b
mov edi, dword [esp + 0x14]
mov edx, dword [0x686bbc]
add edi, 0xfffffffd
shl edi, 4
test byte [edx + edi + 2], 1
je 0x54713b
lea ecx, [esp + 0x308]
call fcn.00573d50
mov ecx, dword [0x686bbc]
lea eax, [esp + 0x308]
push eax
add ecx, edi
mov byte [esp + 0x41c], 0x16
call fcn.00583d00
lea edx, [esp + 0x308]
mov esi, 3
push edx
lea ecx, [esp + 0x35c]
lea ebx, [esi - 1]
call fcn.00578350
test eax, eax
je 0x547127
cmp dword [esp + 0xb8], 0
je 0x547069
lea eax, [esp + 0x30c]
push eax
lea ecx, [esp + 0xa0]
call fcn.00583a80
mov edx, dword [0x686bbc]
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [edx + edi]
mov byte [esp + 0x41c], 0x17
call fcn.005cbd10
mov esi, ebx
lea ecx, [esp + 0x9c]
lea ebx, [esi - 1]
mov byte [esp + 0x418], 0x16
call fcn.004f2200
lea ecx, [esp + 0x1b4]
call fcn.005f06c0
mov eax, dword [esp + 0x1f4]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x420], 0x18
call fcn.00583b90
mov edi, dword [esp + 0x14]
mov ecx, edi
sub ecx, esi
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x1b4]
push edx
call fcn.005cbd10
dec esi
cmp dword [esp + 0xb4], 0
je 0x54710d
lea eax, [esp + 0x314]
push eax
lea ecx, [esp + 0xa0]
call fcn.00583a80
lea ecx, [esp + 0x9c]
push ecx
mov ecx, edi
sub ecx, esi
shl ecx, 4
add ecx, dword [0x686bbc]
mov byte [esp + 0x41c], 0x19
call fcn.005cbd10
lea ecx, [esp + 0x9c]
dec ebx
mov byte [esp + 0x418], 0x18
call fcn.004f2200
sub edi, ebx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x14], edi
mov byte [esp + 0x418], 0x16
call fcn.004f2200
lea ecx, [esp + 0x308]
mov byte [esp + 0x418], 8
call fcn.00573da0
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x358]
mov dword [0x686bcc], edx
mov byte [esp + 0x418], 7
call fcn.00573da0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x418], 6
call fcn.005ca810
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x418], 5
call fcn.00520f30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x418], 4
call fcn.00520f30
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x418], 3
call fcn.0051c420
lea ecx, [esp + 0x270]
mov byte [esp + 0x418], 2
call fcn.0051c420
lea ecx, [esp + 0x294]
mov byte [esp + 0x418], 1
call fcn.0051c420
lea ecx, [esp + 0x2b8]
mov byte [esp + 0x418], 0
call fcn.00573da0
lea ecx, [esp + 0x244]
mov dword [esp + 0x418], 0xffffffff
call fcn.00573da0
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.005fb9ce
mov esp, ebp
pop ebp
ret 8