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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x134
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
push ebx
push esi
push edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x2c]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
fstp st(0)
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x14]
mov ebx, dword [eax]
mov esi, dword [ebp + 8]
add eax, 4
mov dword [ecx + 0x14], eax
mov cl, byte [esi + 0x6c]
mov byte [esp + 0x37], cl
test cl, 0xc
je 0x495c38
dec dword [esi + 0x64]
mov eax, dword [esi + 0x64]
je 0x495b65
test cl, 4
je 0x495c38
mov edi, dword [esi + 0x10]
test cl, 8
je 0x495b91
test eax, eax
jne 0x495b91
mov eax, dword [esi + 0x60]
mov edx, 1
mov dword [esp + 0x2c], edx
mov dword [esi + 0x64], eax
mov al, byte [edi + 0x22]
test al, 0x40
je 0x495b99
and al, 0xbf
mov byte [edi + 0x22], al
jmp 0x495c2d
xor edx, edx
mov dword [esp + 0x2c], edx
jmp 0x495b80
test edx, edx
je 0x495bad
push 0xffffffffffffffff
push 3
call fcn.0049a690
mov cl, byte [esp + 0x3f]
add esp, 8
test cl, 4
je 0x495c1d
mov ecx, dword [edi]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
mov esi, dword [edx + 0x30]
mov ecx, dword [edi + 0x14]
mov edx, dword [edx + 0x38]
mov eax, ecx
sub eax, esi
sar eax, 2
dec eax
mov dword [esp + 0x20], esi
test edx, edx
je 0x495bdb
mov esi, dword [edx + eax*4]
mov dword [esp + 0x18], esi
jmp 0x495be3
mov dword [esp + 0x18], 0xffffffff
mov esi, dword [ebp + 8]
test eax, eax
je 0x495c0b
mov eax, dword [esi + 0x14]
cmp ecx, eax
jbe 0x495c0b
test edx, edx
je 0x495c02
sub eax, dword [esp + 0x20]
sar eax, 2
mov eax, dword [edx + eax*4 - 4]
jmp 0x495c05
or eax, 0xffffffff
cmp dword [esp + 0x18], eax
je 0x495c1d
mov eax, dword [esp + 0x18]
push eax
push 2
call fcn.0049a690
mov esi, dword [ebp + 8]
add esp, 8
cmp byte [esi + 6], 1
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
je 0x497b07
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov edi, ebx
shr edi, 6
and edi, 0xff
mov dword [esp + 0x18], edi
shl edi, 4
mov eax, ebx
and eax, 0x3f
lea esi, [edi + ecx]
mov dword [esp + 0x20], esi
cmp eax, 0x2d
ja case.default.0x495c63
jmp dword [eax*4 + 0x497b64]
shr ebx, 0x17
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov edx, dword [ebx]
mov dword [esi], edx
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0xc], edx
jmp case.default.0x495c63
shr ebx, 0xe
shl ebx, 4
add ebx, dword [esp + 0x28]
mov eax, dword [ebx]
mov dword [esi], eax
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
mov edx, dword [ebx + 8]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp case.default.0x495c63
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx]
shr eax, 6
shl eax, 4
add eax, dword [esp + 0x28]
add ecx, 4
mov dword [edx + 0x14], ecx
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
mov dword [esi], eax
mov dword [esi + 8], 1
test ebx, 0x7fc000
je case.default.0x495c63
mov eax, dword [esp + 0x24]
add dword [eax + 0x14], 4
jmp case.default.0x495c63
shr ebx, 0x17
add esi, 8
mov ecx, ebx
mov dword [esi], 0
add esi, 0x10
dec ebx
test ecx, ecx
jne 0x495d15
jmp case.default.0x495c63
mov edx, dword [esp + 0x30]
shr ebx, 0x17
mov eax, dword [edx + ebx*4 + 0x10]
mov eax, dword [eax]
jmp 0x495ccd
mov eax, ebx
shr ebx, 0xe
shr eax, 0x17
test ebx, 0x100
je 0x495d58
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x495d65
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax*4 + 0x10]
mov eax, dword [edx]
push esi
push ebx
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00494b80
add esp, 0x10
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0xe
test eax, 0x100
je 0x495db5
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
shr ebx, 0x17
push esi
shl ebx, 4
add ebx, dword [esp + 0x20]
push eax
push ebx
jmp 0x495d72
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0x17
push esi
shl ebx, 4
add ebx, dword [esp + 0x20]
push eax
push ebx
jmp 0x495d72
mov eax, ebx
shr eax, 0xe
test eax, 0x100
je 0x495dea
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x495df6
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0x17
test ebx, 0x100
je 0x495e10
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x495e17
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [ecx + edx*4 + 0x10]
mov ecx, dword [eax]
push ebx
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00494cc0
add esp, 0x10
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov edx, dword [esp + 0x30]
mov ecx, dword [esi]
shr ebx, 0x17
mov ebx, dword [edx + ebx*4 + 0x10]
mov eax, dword [ebx]
mov dword [eax], ecx
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebx]
test byte [eax + 8], 0x40
je case.default.0x495c63
add ebx, 8
cmp eax, ebx
jne case.default.0x495c63
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
cmp byte [ecx + 0x3d], 1
mov eax, dword [eax]
ja case.default.0x495c63
test byte [eax + 5], 3
je case.default.0x495c63
push eax
push ecx
call fcn.0049af50
add esp, 8
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0xe
test eax, 0x100
je 0x495ec3
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x495ecf
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0x17
test ebx, 0x100
je 0x495eef
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
push eax
push ebx
push esi
jmp 0x495e28
shl ebx, 4
add ebx, dword [esp + 0x1c]
push eax
push ebx
push esi
jmp 0x495e28
mov edi, dword [ebp + 8]
mov eax, ebx
shr eax, 0x17
shr ebx, 0xe
mov dword [esp + 0x18], eax
and ebx, 0x1ff
call fcn.004984d0
cmp dword [esp + 0x18], 0
mov dword [esi], eax
mov dword [esi + 8], 0x45
jne 0x495f2c
test ebx, ebx
je 0x495f61
mov ecx, ebx
sar ecx, 3
and ecx, 0x1f
je 0x495f3f
and ebx, 7
add ebx, 8
dec ecx
shl ebx, cl
mov edx, dword [esp + 0x18]
mov ecx, edx
sar ecx, 3
and ecx, 0x1f
je 0x495f56
and edx, 7
add edx, 8
dec ecx
shl edx, cl
push ebx
push edx
push edi
call fcn.004980e0
add esp, 0xc
mov edx, dword [edi + 0xc]
cmp dword [edx + 0xc], 0
jle 0x495d7e
add esi, 0x10
push edi
mov dword [edi + 8], esi
call fcn.0049cc50
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov edx, eax
mov dword [edi + 8], ecx
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov ecx, dword [esp + 0x1c]
mov eax, ebx
shr eax, 0x17
shl eax, 4
mov edx, dword [eax + ecx]
add eax, ecx
mov dword [esi + 0x10], edx
mov edx, dword [eax + 4]
mov dword [esi + 0x14], edx
mov edx, dword [eax + 8]
mov dword [esi + 0x18], edx
mov edx, dword [eax + 0xc]
shr ebx, 0xe
mov dword [esi + 0x1c], edx
test ebx, 0x100
je 0x495fd5
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x495fe0
and ebx, 0x1ff
shl ebx, 4
add ebx, ecx
push esi
push ebx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00494b80
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x10]
add esp, 0x10
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496019
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496020
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x49603e
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x49604b
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov edx, 0x13
mov dword [esp + 0x18], ebx
cmp ecx, edx
jne 0x496077
cmp dword [ebx + 8], edx
jne 0x496077
mov ecx, dword [ebx]
add ecx, dword [eax]
mov edi, dword [ebx + 4]
adc edi, dword [eax + 4]
mov dword [esi], ecx
mov dword [esi + 4], edi
mov dword [esi + 8], edx
jmp case.default.0x495c63
mov ebx, 3
cmp ecx, ebx
jne 0x49608b
fld qword [eax]
fstp qword [esp + 0xb8]
jmp 0x49609f
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xb8]
call fcn.00494900
test eax, eax
je 0x4960f1
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x4960c9
fld qword [ecx]
mov dword [esi + 8], ebx
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fadd qword [esp + 0xb8]
fstp qword [esi]
jmp case.default.0x495c63
lea edi, [esp + 0xc8]
call fcn.00494900
test eax, eax
je 0x4960f1
fld qword [esp + 0xc8]
mov dword [esi + 8], ebx
fadd qword [esp + 0xb8]
fstp qword [esi]
jmp case.default.0x495c63
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 6
push esi
push edx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x496122
mov ecx, dword [esp + 0x18]
mov eax, edi
push eax
mov eax, 6
mov edx, ebx
call fcn.0049d110
add esp, 4
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x49614c
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496153
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496171
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x49617e
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov edx, 0x13
mov dword [esp + 0x18], ebx
cmp ecx, edx
jne 0x4961aa
cmp dword [ebx + 8], edx
jne 0x4961aa
mov ecx, dword [eax]
sub ecx, dword [ebx]
mov eax, dword [eax + 4]
sbb eax, dword [ebx + 4]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edx
jmp case.default.0x495c63
mov ebx, 3
cmp ecx, ebx
jne 0x4961be
fld qword [eax]
fstp qword [esp + 0xf8]
jmp 0x4961d2
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xf8]
call fcn.00494900
test eax, eax
je 0x496224
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x4961fc
fld qword [ecx]
mov dword [esi + 8], ebx
fstp qword [esp + 0xa8]
fld qword [esp + 0xf8]
fsub qword [esp + 0xa8]
fstp qword [esi]
jmp case.default.0x495c63
lea edi, [esp + 0xa8]
call fcn.00494900
test eax, eax
je 0x496224
fld qword [esp + 0xf8]
mov dword [esi + 8], ebx
fsub qword [esp + 0xa8]
fstp qword [esi]
jmp case.default.0x495c63
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 7
push esi
push ecx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495e34
mov ecx, dword [esp + 0x18]
mov edx, edi
push edx
mov eax, 7
mov edx, ebx
call fcn.0049d110
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496283
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x49628a
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x4962a8
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x4962b5
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov edi, 0x13
mov dword [esp + 0x18], ebx
cmp ecx, edi
jne 0x4962ea
cmp dword [ebx + 8], edi
jne 0x4962ea
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebx + 4]
push edx
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.004f9b60
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov ebx, 3
cmp ecx, ebx
jne 0x4962fe
fld qword [eax]
fstp qword [esp + 0xd8]
jmp 0x496312
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xd8]
call fcn.00494900
test eax, eax
je 0x496364
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x49633c
fld qword [ecx]
mov dword [esi + 8], ebx
fstp qword [esp + 0x118]
fld qword [esp + 0x118]
fmul qword [esp + 0xd8]
fstp qword [esi]
jmp case.default.0x495c63
lea edi, [esp + 0x118]
call fcn.00494900
test eax, eax
je 0x496364
fld qword [esp + 0x118]
mov dword [esi + 8], ebx
fmul qword [esp + 0xd8]
fstp qword [esi]
jmp case.default.0x495c63
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 8
push esi
push eax
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495d7e
mov ecx, edi
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, 8
mov edx, ebx
call fcn.0049d110
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x4963c3
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x4963ca
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x4963e8
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x4963f5
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
mov ebx, 3
cmp dword [eax + 8], ebx
jne 0x49640e
fld qword [eax]
fstp qword [esp + 0x108]
jmp 0x496422
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0x108]
call fcn.00494900
test eax, eax
je 0x496474
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x49644c
fld qword [ecx]
mov dword [esi + 8], ebx
fstp qword [esp + 0xe8]
fld qword [esp + 0x108]
fdiv qword [esp + 0xe8]
fstp qword [esi]
jmp case.default.0x495c63
lea edi, [esp + 0xe8]
call fcn.00494900
test eax, eax
je 0x496474
fld qword [esp + 0x108]
mov dword [esi + 8], ebx
fdiv qword [esp + 0xe8]
fstp qword [esi]
jmp case.default.0x495c63
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0xb
push esi
push ecx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495e34
mov ecx, dword [esp + 0x18]
mov edx, edi
push edx
mov eax, 0xb
mov edx, ebx
call fcn.0049d110
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x4964d3
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x4964da
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x4964f8
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x496505
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov edi, 0x13
mov dword [esp + 0x18], ebx
cmp dword [eax + 8], edi
jne 0x496528
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
jmp 0x49653e
lea ecx, [esp + 0x88]
push 0
push ecx
call fcn.00494980
add esp, 8
test eax, eax
je 0x4965a3
cmp dword [ebx + 8], edi
jne 0x49656b
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x58], ecx
and ecx, dword [esp + 0x88]
mov dword [esp + 0x5c], eax
and eax, dword [esp + 0x8c]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
jmp case.default.0x495c63
lea edx, [esp + 0x58]
push 0
push edx
mov eax, ebx
call fcn.00494980
add esp, 8
test eax, eax
je 0x4965a3
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and ecx, dword [esp + 0x88]
and eax, dword [esp + 0x8c]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0xd
push esi
push eax
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495d7e
mov ecx, edi
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, 0xd
mov edx, ebx
call fcn.0049d110
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496602
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496609
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496627
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x496634
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov edi, 0x13
mov dword [esp + 0x18], ebx
cmp dword [eax + 8], edi
jne 0x496657
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
jmp 0x49666d
lea ecx, [esp + 0x80]
push 0
push ecx
call fcn.00494980
add esp, 8
test eax, eax
je 0x4966d2
cmp dword [ebx + 8], edi
jne 0x49669a
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x68], ecx
or ecx, dword [esp + 0x80]
mov dword [esp + 0x6c], eax
or eax, dword [esp + 0x84]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
jmp case.default.0x495c63
lea edx, [esp + 0x68]
push 0
push edx
mov eax, ebx
call fcn.00494980
add esp, 8
test eax, eax
je 0x4966d2
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
or ecx, dword [esp + 0x80]
or eax, dword [esp + 0x84]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0xe
push esi
push eax
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495d7e
mov ecx, edi
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, 0xe
mov edx, ebx
call fcn.0049d110
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496731
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496738
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496756
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x496763
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov edi, 0x13
mov dword [esp + 0x18], ebx
cmp dword [eax + 8], edi
jne 0x496780
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
jmp 0x496793
lea ecx, [esp + 0x50]
push 0
push ecx
call fcn.00494980
add esp, 8
test eax, eax
je 0x4967ec
cmp dword [ebx + 8], edi
jne 0x4967ba
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x78], ecx
xor ecx, dword [esp + 0x50]
mov dword [esp + 0x7c], eax
xor eax, dword [esp + 0x54]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
jmp case.default.0x495c63
lea edx, [esp + 0x78]
push 0
push edx
mov eax, ebx
call fcn.00494980
add esp, 8
test eax, eax
je 0x4967ec
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
xor ecx, dword [esp + 0x50]
xor eax, dword [esp + 0x54]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0xf
push esi
push eax
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495d7e
mov ecx, edi
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, 0xf
mov edx, ebx
call fcn.0049d110
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x49684b
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496852
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496870
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x49687d
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
cmp dword [eax + 8], 0x13
mov dword [esp + 0x18], ebx
jne 0x496896
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edi
jmp 0x4968b1
lea edx, [esp + 0x38]
push 0
push edx
call fcn.00494980
add esp, 8
test eax, eax
je 0x49696c
mov edi, dword [esp + 0x3c]
cmp dword [ebx + 8], 0x13
jne 0x4968c6
mov ecx, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
jmp 0x4968e7
lea eax, [esp + 0x60]
push 0
push eax
mov eax, ebx
call fcn.00494980
add esp, 8
test eax, eax
je 0x49696c
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
test ebx, ebx
jg 0x49693b
jl 0x4968f1
test ecx, ecx
jae 0x496930
cmp ebx, 0xffffffff
jg 0x496912
jl 0x4968fd
cmp ecx, 0xffffffc0
ja 0x496912
xor eax, eax
xor edx, edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
mov eax, dword [esp + 0x38]
neg ecx
mov edx, edi
call fcn.004fb370
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
test ebx, ebx
jl 0x496950
jg 0x49693b
cmp ecx, 0x40
jb 0x496950
xor eax, eax
xor edx, edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
mov eax, dword [esp + 0x38]
mov edx, edi
call fcn.0050e6c0
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0x10
push esi
push ecx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495e34
mov ecx, dword [esp + 0x18]
mov edx, edi
push edx
mov eax, 0x10
mov edx, ebx
call fcn.0049d110
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x4969cb
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x4969d2
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x4969f0
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x4969fd
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
cmp dword [eax + 8], 0x13
mov dword [esp + 0x18], ebx
jne 0x496a16
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edi
jmp 0x496a31
lea ecx, [esp + 0x40]
push 0
push ecx
call fcn.00494980
add esp, 8
test eax, eax
je 0x496ae0
mov edi, dword [esp + 0x44]
cmp dword [ebx + 8], 0x13
jne 0x496a46
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jmp 0x496a67
lea edx, [esp + 0x70]
push 0
push edx
mov eax, ebx
call fcn.00494980
add esp, 8
test eax, eax
je 0x496ae0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
neg ecx
adc eax, 0
neg eax
test eax, eax
jg 0x496ac2
jl 0x496a78
test ecx, ecx
jae 0x496ab7
cmp eax, 0xffffffff
jg 0x496a99
jl 0x496a84
cmp ecx, 0xffffffc0
ja 0x496a99
xor eax, eax
xor edx, edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
mov eax, dword [esp + 0x40]
neg ecx
mov edx, edi
call fcn.004fb370
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
test eax, eax
jl 0x496ad7
jg 0x496ac2
cmp ecx, 0x40
jb 0x496ad7
xor eax, eax
xor edx, edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
mov eax, dword [esp + 0x40]
jmp 0x496954
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0x11
push esi
push eax
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495d7e
mov ecx, edi
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, 0x11
mov edx, ebx
call fcn.0049d110
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496b3f
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496b46
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496b64
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x496b71
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov edi, 0x13
mov dword [esp + 0x18], ebx
cmp ecx, edi
jne 0x496bad
cmp dword [ebx + 8], edi
jne 0x496bad
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push ebx
push edx
push eax
push ecx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004958e0
add esp, 0x14
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov ebx, 3
cmp ecx, ebx
jne 0x496bc1
fld qword [eax]
fstp qword [esp + 0x128]
jmp 0x496bd5
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0x128]
call fcn.00494900
test eax, eax
je 0x496c3e
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x496be9
fld qword [ecx]
fstp qword [esp + 0x98]
jmp 0x496bf9
lea edi, [esp + 0x98]
call fcn.00494900
test eax, eax
je 0x496c3e
fld qword [esp + 0x128]
fld qword [esp + 0x98]
call fcn.0050e2da
fld st(0)
fld qword [esp + 0x98]
fmul st(1), st(0)
fxch st(1)
fcomp qword [0x537c10]
fnstsw ax
test ah, 5
jp 0x496c32
faddp st(1)
mov dword [esi + 8], ebx
fstp qword [esi]
jmp case.default.0x495c63
fstp st(0)
mov dword [esi + 8], ebx
fstp qword [esi]
jmp case.default.0x495c63
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 9
push esi
push edx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x496122
mov ecx, dword [esp + 0x18]
mov eax, edi
push eax
mov eax, 9
mov edx, ebx
call fcn.0049d110
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
add esp, 4
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496c9d
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496ca4
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496cc2
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x496ccf
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov edi, 0x13
mov dword [esp + 0x18], ebx
cmp ecx, edi
jne 0x496d0b
cmp dword [ebx + 8], edi
jne 0x496d0b
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push ebx
push edx
push eax
mov eax, dword [ebp + 8]
push ecx
push eax
call fcn.00495860
add esp, 0x14
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov ebx, 3
cmp ecx, ebx
jne 0x496d1f
fld qword [eax]
fstp qword [esp + 0xb0]
jmp 0x496d33
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xb0]
call fcn.00494900
test eax, eax
je 0x496d7d
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x496d47
fld qword [ecx]
fstp qword [esp + 0xc0]
jmp 0x496d57
lea edi, [esp + 0xc0]
call fcn.00494900
test eax, eax
je 0x496d7d
fld qword [esp + 0xb0]
sub esp, 8
fdiv qword [esp + 0xc8]
fstp qword [esp]
call fcn.0050e300
fstp qword [esi]
add esp, 8
mov dword [esi + 8], ebx
jmp case.default.0x495c63
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0xc
push esi
push ecx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495e34
mov ecx, dword [esp + 0x18]
mov edx, edi
push edx
mov eax, 0xc
mov edx, ebx
call fcn.0049d110
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x496ddc
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x496de3
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
mov dword [esp + 0x20], eax
test ebx, 0x100
je 0x496e01
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x496e0e
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
mov ebx, 3
cmp dword [eax + 8], ebx
jne 0x496e27
fld qword [eax]
fstp qword [esp + 0xe0]
jmp 0x496e3b
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xe0]
call fcn.00494900
test eax, eax
je 0x496e7c
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], ebx
jne 0x496e4f
fld qword [ecx]
fstp qword [esp + 0xd0]
jmp 0x496e5f
lea edi, [esp + 0xd0]
call fcn.00494900
test eax, eax
je 0x496e7c
fld qword [esp + 0xe0]
fld qword [esp + 0xd0]
call fcn.0050e470
fstp qword [esi]
mov dword [esi + 8], ebx
jmp case.default.0x495c63
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push 0xa
push esi
push edx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x496122
mov ecx, dword [esp + 0x18]
mov eax, edi
push eax
mov eax, 0xa
mov edx, ebx
call fcn.0049d110
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
add esp, 4
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
shr ebx, 0x17
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
cmp eax, 0x13
jne 0x496ef0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
neg eax
adc ecx, 0
neg ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], 0x13
jmp case.default.0x495c63
cmp eax, 3
jne 0x496f11
fld qword [ebx]
mov dword [esi + 8], eax
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fchs
fstp qword [esi]
jmp case.default.0x495c63
lea edi, [esp + 0xf0]
mov ecx, ebx
call fcn.00494900
test eax, eax
je 0x496f3a
fld qword [esp + 0xf0]
mov dword [esi + 8], 3
fchs
fstp qword [esi]
jmp case.default.0x495c63
mov edi, dword [ebp + 8]
push 0x12
push esi
push ebx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x495e34
mov edx, edi
push edx
mov eax, 0x12
mov ecx, ebx
mov edx, ebx
call fcn.0049d110
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
shr ebx, 0x17
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov edi, 0x13
cmp dword [ebx + 8], edi
jne 0x496fa7
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
not eax
not ebx
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], edi
jmp case.default.0x495c63
lea edx, [esp + 0x48]
push 0
push edx
mov eax, ebx
call fcn.00494980
add esp, 8
test eax, eax
je 0x496fd5
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
not eax
not ebx
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], edi
jmp case.default.0x495c63
mov edi, dword [ebp + 8]
push 0x13
push esi
push ebx
call fcn.0049d040
add esp, 0xc
test eax, eax
jne 0x496122
mov eax, edi
push eax
mov eax, 0x13
mov ecx, ebx
mov edx, ebx
jmp 0x49611a
shr ebx, 0x17
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
test eax, eax
je 0x497028
cmp eax, 1
jne 0x497018
cmp dword [ebx], 0
je 0x497028
xor eax, eax
mov dword [esi], eax
mov dword [esi + 8], 1
jmp case.default.0x495c63
mov eax, 1
mov dword [esi], eax
mov dword [esi + 8], eax
jmp case.default.0x495c63
mov eax, dword [ebp + 8]
shr ebx, 0x17
shl ebx, 4
add ebx, dword [esp + 0x1c]
push esi
push eax
call fcn.00495780
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
add esp, 8
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
mov eax, dword [ebp + 8]
mov esi, ebx
shr ebx, 0xe
and ebx, 0x1ff
lea ecx, [ebx + 1]
shr esi, 0x17
sub ebx, esi
shl ecx, 4
add ecx, dword [esp + 0x1c]
inc ebx
push ebx
push eax
mov dword [eax + 8], ecx
call fcn.004954e0
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x10]
lea eax, [edi + ecx]
shl esi, 4
add esi, ecx
mov ecx, dword [esi]
mov dword [eax], ecx
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp + 8]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0xc]
add esp, 8
cmp dword [edx + 0xc], 0
jle 0x4970eb
cmp eax, esi
jb 0x4970c1
lea esi, [eax + 0x10]
mov edi, ecx
push edi
mov dword [edi + 8], esi
call fcn.0049cc50
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov dword [edi + 8], ecx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
add esp, 4
mov dword [esp + 0x1c], edx
mov dword [edi + 8], eax
jmp case.default.0x495c63
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov edi, ecx
mov dword [esp + 0x1c], edx
mov dword [edi + 8], eax
jmp case.default.0x495c63
cmp dword [esp + 0x18], 0
jle 0x497127
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea eax, [edx + eax*8 - 0x10]
push eax
call fcn.004991a0
add esp, 4
mov eax, dword [esp + 0x24]
shr ebx, 0xe
lea ecx, [ebx*4 - 0x7fffc]
add dword [eax + 0x14], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
test eax, 0x100
je 0x497157
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x49715e
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0xe
test ebx, 0x100
je 0x497178
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x497185
and ebx, 0x1ff
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
push ebx
push eax
mov eax, esi
call fcn.00495290
mov ecx, dword [esp + 0x2c]
add esp, 8
cmp eax, dword [esp + 0x18]
je 0x4971ae
add dword [ecx + 0x14], 4
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov edx, dword [ecx + 0x14]
mov edi, dword [edx]
mov eax, edi
shr eax, 6
and eax, 0xff
jle 0x4971d5
mov ecx, dword [ecx + 0x10]
add eax, eax
lea edx, [ecx + eax*8 - 0x10]
push edx
call fcn.004991a0
mov ecx, dword [esp + 0x28]
add esp, 4
shr edi, 0xe
lea eax, [edi*4 - 0x7fff8]
add dword [ecx + 0x14], eax
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0xe
test eax, 0x100
je 0x497208
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x497214
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0x17
test ebx, 0x100
je 0x49722e
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
jmp 0x497235
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov esi, eax
mov eax, ebx
call fcn.00495110
cmp eax, dword [esp + 0x18]
je 0x49725b
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
add dword [eax + 0x14], 4
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 0x14]
mov ebx, dword [edx]
mov eax, ebx
shr eax, 6
and eax, 0xff
jle 0x497285
mov ecx, dword [edi + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea edx, [ecx + eax*8 - 0x10]
push edx
call fcn.004991a0
add esp, 4
shr ebx, 0xe
lea eax, [ebx*4 - 0x7fff8]
add dword [edi + 0x14], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1c], ecx
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0xe
test eax, 0x100
je 0x4972bc
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x28]
jmp 0x4972c8
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x1c]
shr ebx, 0x17
test ebx, 0x100
je 0x4972f3
and ebx, 0xff
shl ebx, 4
add ebx, dword [esp + 0x28]
mov esi, eax
mov eax, dword [ebp + 8]
push ebx
call fcn.004951a0
add esp, 4
jmp 0x497241
shl ebx, 4
add ebx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [ebp + 8]
push ebx
call fcn.004951a0
add esp, 4
jmp 0x497241
mov eax, dword [esi + 8]
test ebx, 0x7fc000
je 0x49736a
test eax, eax
je 0x497378
cmp eax, 1
jne 0x497326
cmp dword [esi], 0
je 0x497378
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x14]
mov edi, dword [edx]
mov eax, edi
shr eax, 6
and eax, 0xff
jle 0x497358
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea eax, [edx + eax*8 - 0x10]
push eax
call fcn.004991a0
mov ecx, dword [esp + 0x28]
add esp, 4
shr edi, 0xe
lea edx, [edi*4 - 0x7fff8]
add dword [ecx + 0x14], edx
jmp case.default.0x495c63
test eax, eax
je 0x497326
cmp eax, 1
jne 0x497378
cmp dword [esi], 0
je 0x497326
mov eax, dword [esp + 0x24]
add dword [eax + 0x14], 4
jmp case.default.0x495c63
mov eax, ebx
shr eax, 0x17
shl eax, 4
add eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
test ebx, 0x7fc000
je 0x4973ce
test ecx, ecx
je 0x4973dc
cmp ecx, 1
jne 0x4973aa
cmp dword [eax], 0
je 0x4973dc
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0xc], edx
mov eax, dword [ecx + 0x14]
mov edi, dword [eax]
jmp 0x49732f
test ecx, ecx
je 0x4973aa
cmp ecx, 1
jne 0x4973dc
cmp dword [eax], 0
je 0x4973aa
mov eax, dword [esp + 0x24]
add dword [eax + 0x14], 4
jmp case.default.0x495c63
mov eax, ebx
shr ebx, 0xe
and ebx, 0x1ff
shr eax, 0x17
dec ebx
test eax, eax
je 0x497407
mov ecx, dword [ebp + 8]
shl eax, 4
add eax, esi
mov dword [ecx + 8], eax
mov eax, esi
mov esi, dword [ebp + 8]
push ebx
mov ecx, esi
call fcn.0049a870
add esp, 4
test eax, eax
je 0x497a89
test ebx, ebx
js 0x496122
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 4]
mov ecx, edx
mov dword [esi + 8], eax
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
shr ebx, 0x17
test ebx, ebx
je 0x497451
mov eax, dword [ebp + 8]
shl ebx, 4
add ebx, esi
mov dword [eax + 8], ebx
mov eax, esi
mov esi, dword [ebp + 8]
push 0xffffffffffffffff
mov ecx, esi
call fcn.0049a870
add esp, 4
test eax, eax
jne 0x496122
mov eax, dword [esi + 0x10]
mov edx, dword [eax]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0xc]
movzx ecx, byte [ecx + 6]
mov ebx, dword [eax + 8]
mov edi, dword [ebx]
shl ecx, 4
add ecx, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + 0x1c], 0
mov dword [esp + 0x2c], edx
jle 0x4974b0
mov edx, dword [ebx + 0x10]
push edx
call fcn.004991a0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x2c], 0
cmp edx, dword [esp + 0x18]
jae 0x4974f8
mov ecx, edx
xor eax, eax
mov esi, dword [ecx]
mov dword [edi + eax], esi
mov esi, dword [ecx + 4]
mov dword [edi + eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [edi + eax + 8], esi
mov ecx, dword [ecx + 0xc]
mov dword [edi + eax + 0xc], ecx
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
shl eax, 4
lea ecx, [edx + eax]
cmp ecx, dword [esp + 0x18]
jb 0x4974c2
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
sub ecx, edx
and ecx, 0xfffffff0
add ecx, edi
mov dword [ebx + 0x10], ecx
mov ecx, dword [esi + 8]
sub ecx, edx
and ecx, 0xfffffff0
add edi, ecx
mov dword [esi + 8], edi
mov dword [ebx + 4], edi
mov edx, dword [eax + 0x14]
or byte [ebx + 0x22], 0x20
mov dword [ebx + 0x14], edx
mov dword [esi + 0x10], ebx
mov dword [esp + 0x24], ebx
jmp 0x495b09
cmp dword [esi + 8], 0x13
jne 0x49759c
mov eax, dword [esi]
add eax, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 4]
mov edi, dword [esi + 0x14]
adc ecx, edx
test edx, edx
jl 0x497561
jg 0x49754d
cmp dword [esi + 0x20], 0
jbe 0x497561
cmp ecx, edi
jl 0x497574
jg case.default.0x495c63
cmp eax, dword [esi + 0x10]
jbe 0x497574
jmp case.default.0x495c63
cmp edi, ecx
jg case.default.0x495c63
jl 0x497574
cmp dword [esi + 0x10], eax
ja case.default.0x495c63
mov edx, dword [esp + 0x24]
shr ebx, 0xe
lea edi, [ebx*4 - 0x7fffc]
add dword [edx + 0x14], edi
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], 0x13
jmp case.default.0x495c63
fld qword [esi + 0x20]
fld qword [esi]
fadd st(1)
fld qword [esi + 0x10]
fxch st(2)
fcomp qword [0x537c10]
fnstsw ax
fcom st(1)
test ah, 0x41
fnstsw ax
fstp st(1)
jne 0x4975c5
test ah, 0x41
jnp 0x4975ce
jmp 0x495b30
test ah, 1
jne 0x495b30
mov eax, dword [esp + 0x24]
shr ebx, 0xe
lea ecx, [ebx*4 - 0x7fffc]
add dword [eax + 0x14], ecx
fst qword [esi]
fstp qword [esi + 0x30]
mov dword [esi + 0x38], 3
jmp case.default.0x495c63
mov ecx, 0x13
lea edi, [esi + 0x10]
lea eax, [esi + 0x20]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], eax
cmp dword [esi + 8], ecx
jne 0x49767e
cmp dword [eax + 8], ecx
jne 0x49767e
mov ecx, dword [eax + 4]
lea edx, [esp + 0x94]
push edx
mov edx, dword [eax]
push ecx
push edx
push edi
lea esi, [esp + 0x110]
call fcn.00494ab0
add esp, 0x10
test eax, eax
je 0x49767a
cmp dword [esp + 0x94], 0
mov eax, dword [esp + 0x20]
je 0x497644
xor ecx, ecx
xor edx, edx
jmp 0x497649
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [esp + 0x100]
mov dword [edi], esi
mov esi, dword [esp + 0x104]
mov dword [edi + 4], esi
mov esi, 0x13
mov dword [edi + 8], esi
mov edi, dword [esp + 0x18]
sub ecx, dword [edi]
sbb edx, dword [edi + 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], esi
jmp 0x497127
mov esi, dword [esp + 0x20]
cmp dword [edi + 8], 3
jne 0x49768f
fld qword [edi]
fstp qword [esp + 0x110]
jmp 0x4976a7
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0x110]
call fcn.00494900
test eax, eax
je 0x497b31
mov eax, dword [esp + 0x2c]
fld qword [esp + 0x110]
mov ecx, 3
fstp qword [eax]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], ecx
jne 0x4976d0
fld qword [eax]
fstp qword [esp + 0xa0]
jmp 0x4976e8
mov ecx, dword [esp + 0x18]
lea edi, [esp + 0xa0]
call fcn.00494900
test eax, eax
je 0x497b3f
mov eax, dword [esp + 0x18]
fld qword [esp + 0xa0]
mov ecx, 3
fstp qword [eax]
mov dword [eax + 8], ecx
cmp dword [esi + 8], ecx
jne 0x497723
fld qword [esi]
mov dword [esi + 8], ecx
fstp qword [esp + 0x120]
fld qword [esp + 0x120]
fsub qword [esp + 0xa0]
fstp qword [esi]
jmp 0x497127
lea edi, [esp + 0x120]
mov ecx, esi
call fcn.00494900
test eax, eax
je 0x497b4d
fld qword [esp + 0x120]
mov dword [esi + 8], 3
fsub qword [esp + 0xa0]
fstp qword [esi]
jmp 0x497127
mov edx, dword [esi + 0x20]
mov dword [esi + 0x50], edx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x54], ecx
mov edx, dword [esi + 0x28]
lea eax, [esi + 0x30]
mov dword [eax + 0x28], edx
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x2c], ecx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x18]
mov dword [eax + 0x18], edx
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x1c], ecx
mov edx, dword [esi]
mov dword [eax], edx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0xc]
mov esi, dword [ebp + 8]
push 1
shr ebx, 0xe
and ebx, 0x1ff
push ebx
push eax
lea edx, [eax + 0x30]
mov dword [eax + 0xc], ecx
push esi
mov dword [esi + 8], edx
call fcn.0049ab50
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x14]
mov ebx, dword [eax]
add eax, 4
mov dword [ecx + 0x14], eax
mov ecx, ebx
shr ecx, 6
and ecx, 0xff
shl ecx, 4
add esp, 0x10
add ecx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov esi, ecx
cmp dword [esi + 0x18], 0
je case.default.0x495c63
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esi], edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
jmp 0x497127
mov edi, ebx
shr ebx, 0xe
shr edi, 0x17
and ebx, 0x1ff
mov dword [esp + 0x20], edi
mov eax, ebx
test edi, edi
jne 0x49783d
mov edx, dword [ebp + 8]
mov edi, dword [edx + 8]
sub edi, esi
sar edi, 4
dec edi
mov dword [esp + 0x20], edi
test eax, eax
jne 0x497853
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx]
shr eax, 6
add ecx, 4
mov dword [edx + 0x14], ecx
mov ebx, dword [esi]
dec eax
imul eax, eax, 0x32
add eax, edi
mov dword [esp + 0x18], eax
cmp eax, dword [ebx + 8]
jbe 0x49788b
cmp dword [ebx + 0x10], 0x5338e8
jne 0x497871
xor edx, edx
jmp 0x49787b
mov cl, byte [ebx + 7]
mov edx, 1
shl edx, cl
push edx
push eax
mov eax, dword [ebp + 8]
push eax
mov eax, ebx
call fcn.004980e0
add esp, 0xc
test edi, edi
jle 0x497942
mov edi, dword [esp + 0x20]
shl edi, 4
add edi, esi
lea esp, [esp]
mov ecx, dword [esp + 0x18]
xor esi, esi
push esi
push ecx
mov edx, ebx
call fcn.004987a0
add esp, 8
cmp eax, 0x5337d8
jne 0x4978eb
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x130]
push eax
push ebx
push ecx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], 0x13
call fcn.004985b0
add esp, 0xc
mov edx, dword [edi]
dec dword [esp + 0x18]
mov dword [eax], edx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov edx, dword [edi + 8]
mov dword [eax + 8], edx
mov ecx, dword [edi + 0xc]
mov dword [eax + 0xc], ecx
test byte [edi + 8], 0x40
je 0x49792e
mov al, byte [ebx + 5]
test al, 4
je 0x49792e
mov edx, dword [edi]
test byte [edx + 5], 3
je 0x49792e
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
and al, 0xfb
mov byte [ebx + 5], al
mov edx, dword [ecx + 0x50]
mov dword [ebx + 0x1c], edx
mov dword [ecx + 0x50], ebx
mov eax, dword [esp + 0x20]
dec eax
sub edi, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jg 0x4978a0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov dword [edx + 8], ecx
jmp case.default.0x495c63
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x34]
mov edx, dword [esp + 0x1c]
shr ebx, 0xe
mov ebx, dword [ecx + ebx*4]
push edx
add edi, 0x10
push edi
mov ecx, ebx
call fcn.004959a0
add esp, 8
test eax, eax
jne 0x497991
mov eax, dword [esp + 0x1c]
push esi
push eax
push edi
mov edi, dword [ebp + 8]
push ebx
push edi
call fcn.00495a10
add esp, 0x14
jmp 0x49799d
mov edi, dword [ebp + 8]
mov dword [esi], eax
mov dword [esi + 8], 0x46
mov ecx, dword [edi + 0xc]
cmp dword [ecx + 0xc], 0
jle 0x496122
add esi, 0x10
push edi
mov dword [edi + 8], esi
call fcn.0049cc50
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ecx, edx
mov dword [edi + 8], eax
mov edx, dword [ecx + 0x10]
add esp, 4
mov dword [esp + 0x1c], edx
jmp case.default.0x495c63
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
shr ebx, 0x17
dec ebx
mov edx, ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x1c]
sub ebx, dword [eax]
mov eax, dword [ecx + 0xc]
movzx ecx, byte [eax + 6]
sar ebx, 4
sub ebx, ecx
dec ebx
test edx, edx
jns 0x497a3d
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x18]
sub eax, dword [ecx + 8]
mov edx, ebx
sar eax, 4
mov dword [esp + 0x18], edx
cmp eax, ebx
jg 0x497a20
push ebx
mov eax, ecx
call fcn.0049a570
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, ebx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
add edi, eax
mov dword [esp + 0x1c], eax
mov eax, ebx
shl eax, 4
add eax, edi
mov dword [esp + 0x20], edi
mov dword [ecx + 8], eax
mov esi, edi
xor ecx, ecx
test edx, edx
jle case.default.0x495c63
mov eax, dword [esp + 0x1c]
mov edx, ebx
shl edx, 4
sub eax, edx
mov edx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x497a72
mov edi, dword [eax]
mov dword [esi], edi
mov edi, dword [eax + 4]
mov dword [esi + 4], edi
mov edi, dword [eax + 8]
mov dword [esi + 8], edi
mov edi, dword [eax + 0xc]
mov dword [esi + 0xc], edi
jmp 0x497a79
mov dword [esi + 8], 0
inc ecx
add eax, 0x10
add esi, 0x10
cmp ecx, edx
jl 0x497a56
jmp case.default.0x495c63
mov esi, dword [esi + 0x10]
or byte [esi + 0x22], 8
mov dword [esp + 0x24], esi
jmp 0x495b09
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
shr ebx, 0x17
cmp dword [ecx + 0x1c], 0
jle 0x497abd
mov edx, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
push edx
call fcn.004991a0
mov esi, dword [esp + 0x24]
add esp, 4
test ebx, ebx
je 0x497ac6
lea eax, [ebx - 1]
jmp 0x497ad1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
sub eax, esi
sar eax, 4
push eax
mov eax, esi
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.0049aab0
mov ecx, dword [esp + 0x28]
add esp, 4
test byte [ecx + 0x22], 8
je 0x497b5b
mov edx, dword [esi + 0x10]
mov dword [esp + 0x24], edx
test eax, eax
je 0x495b09
mov eax, edx
mov ecx, dword [eax + 4]
mov dword [esi + 8], ecx
jmp 0x495b09
cmp dword [esp + 0x2c], 0
je 0x497b15
mov dword [esi + 0x64], 1
add dword [edi + 0x14], 0xfffffffc
or byte [edi + 0x22], 0x40
mov edx, dword [esi + 8]
sub edx, 0x10
mov eax, 1
mov ecx, esi
mov dword [edi], edx
call fcn.0049a350
mov eax, dword [ebp + 8]
push 0x54bca4
push eax
call fcn.00494860
mov ecx, dword [ebp + 8]
push 0x54bcc4
push ecx
call fcn.00494860
mov edx, dword [ebp + 8]
push 0x54bce0
push edx
call fcn.00494860
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret