Function at 0x415f20
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 + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
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 + 0x24], edx
mov dword [esp + 0x18], eax
jmp case.default.0x416094
fstp st(0)
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x14]
mov edi, dword [eax]
mov esi, dword [ebp + 8]
add eax, 4
mov dword [ecx + 0x14], eax
mov cl, byte [esi + 0x6c]
mov dword [esp + 0x20], edi
mov byte [esp + 0x37], cl
test cl, 0xc
je 0x416069
dec dword [esi + 0x64]
mov eax, dword [esi + 0x64]
je 0x415f99
test cl, 4
je 0x416069
mov ebx, dword [esi + 0x10]
test cl, 8
je 0x415fc5
test eax, eax
jne 0x415fc5
mov eax, dword [esi + 0x60]
mov edx, 1
mov dword [esp + 0x28], edx
mov dword [esi + 0x64], eax
mov al, byte [ebx + 0x22]
test al, 0x40
je 0x415fcd
and al, 0xbf
mov byte [ebx + 0x22], al
jmp 0x41605e
xor edx, edx
mov dword [esp + 0x28], edx
jmp 0x415fb4
test edx, edx
je 0x415fe1
push 0xffffffffffffffff
push 3
call fcn.00412ed0
mov cl, byte [esp + 0x3f]
add esp, 8
test cl, 4
je 0x41604e
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xc]
mov esi, dword [ecx + 0x30]
mov edx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x38]
mov eax, edx
sub eax, esi
sar eax, 2
dec eax
mov dword [esp + 0x18], esi
test ecx, ecx
je 0x41600f
mov esi, dword [ecx + eax*4]
mov dword [esp + 0x2c], esi
jmp 0x416017
mov dword [esp + 0x2c], 0xffffffff
mov esi, dword [ebp + 8]
test eax, eax
je 0x41603f
mov eax, dword [esi + 0x14]
cmp edx, eax
jbe 0x41603f
test ecx, ecx
je 0x416036
sub eax, dword [esp + 0x18]
sar eax, 2
mov eax, dword [ecx + eax*4 - 4]
jmp 0x416039
or eax, 0xffffffff
cmp dword [esp + 0x2c], eax
je 0x41604e
mov eax, dword [esp + 0x2c]
push eax
push 2
call fcn.00412ed0
add esp, 8
cmp byte [esi + 6], 1
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x14], ecx
je 0x417c42
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov esi, edi
shr esi, 6
and esi, 0xff
mov dword [esp + 0x2c], esi
shl esi, 4
mov eax, edi
and eax, 0x3f
lea ebx, [esi + ecx]
mov dword [esp + 0x28], ebx
cmp eax, 0x2d
ja case.default.0x416094
jmp dword [eax*4 + 0x417c9c]
shr edi, 0x17
shl edi, 4
add edi, dword [esp + 0x18]
mov edx, dword [edi]
mov dword [ebx], edx
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [edi + 8]
mov dword [ebx + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [ebx + 0xc], edx
jmp case.default.0x416094
shr edi, 0xe
shl edi, 4
add edi, dword [esp + 0x24]
mov eax, dword [edi]
mov dword [ebx], eax
mov ecx, dword [edi + 4]
mov dword [ebx + 4], ecx
mov edx, dword [edi + 8]
mov dword [ebx + 8], edx
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
jmp case.default.0x416094
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx]
shr eax, 6
shl eax, 4
add eax, dword [esp + 0x24]
add ecx, 4
mov dword [edx + 0x14], ecx
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xc], edx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
mov dword [ebx], eax
mov dword [ebx + 8], 1
test edi, 0x7fc000
je case.default.0x416094
mov eax, dword [esp + 0x1c]
add dword [eax + 0x14], 4
jmp case.default.0x416094
shr edi, 0x17
lea eax, [ebx + 8]
jmp 0x416150
mov ecx, edi
mov dword [eax], 0
add eax, 0x10
dec edi
test ecx, ecx
jne 0x416150
jmp case.default.0x416094
mov edx, dword [esp + 0x30]
shr edi, 0x17
mov eax, dword [edx + edi*4 + 0x10]
mov eax, dword [eax]
jmp 0x4160fe
mov eax, edi
shr edi, 0xe
shr eax, 0x17
test edi, 0x100
je 0x416193
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x4161a0
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax*4 + 0x10]
mov eax, dword [edx]
push ebx
push edi
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00414fc0
add esp, 0x10
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x18], eax
jmp case.default.0x416094
mov eax, edi
shr eax, 0xe
test eax, 0x100
je 0x4161f0
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
shr edi, 0x17
push ebx
shl edi, 4
add edi, dword [esp + 0x1c]
push eax
push edi
jmp 0x4161ad
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0x17
push ebx
shl edi, 4
add edi, dword [esp + 0x1c]
push eax
push edi
jmp 0x4161ad
mov eax, edi
shr eax, 0xe
test eax, 0x100
je 0x416225
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416231
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0x17
test edi, 0x100
je 0x41624b
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416252
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [ecx + edx*4 + 0x10]
mov ecx, dword [eax]
push edi
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00415100
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx]
shr edi, 0x17
mov edi, dword [edx + edi*4 + 0x10]
mov eax, dword [edi]
mov dword [eax], ecx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [edi]
test byte [eax + 8], 0x40
je case.default.0x416094
add edi, 8
cmp eax, edi
jne case.default.0x416094
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
cmp byte [ecx + 0x3d], 1
mov eax, dword [eax]
ja case.default.0x416094
test eax, eax
je case.default.0x416094
test byte [eax + 5], 3
je case.default.0x416094
push eax
push ecx
call fcn.0041a830
add esp, 8
jmp case.default.0x416094
mov eax, edi
shr eax, 0xe
test eax, 0x100
je 0x416306
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416312
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0x17
test edi, 0x100
je 0x416332
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
push eax
push edi
push ebx
jmp 0x416263
shl edi, 4
add edi, dword [esp + 0x18]
push eax
push edi
push ebx
jmp 0x416263
mov edx, dword [ebp + 8]
push 0x20
mov esi, edi
push 5
shr edi, 0xe
push edx
shr esi, 0x17
and edi, 0x1ff
call fcn.0041a7b0
xor ecx, ecx
mov edx, 0x4ee590
add esp, 0xc
mov dword [eax + 0x18], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x10], edx
mov word [eax + 6], 0xff
mov dword [eax + 0x14], edx
mov dword [ebx], eax
mov dword [ebx + 8], 0x45
cmp esi, ecx
jne 0x41638c
cmp edi, ecx
je 0x4163c4
mov ecx, edi
sar ecx, 3
and ecx, 0x1f
je 0x41639f
and edi, 7
add edi, 8
dec ecx
shl edi, cl
mov ecx, esi
sar ecx, 3
and ecx, 0x1f
je 0x4163b2
and esi, 7
add esi, 8
dec ecx
shl esi, cl
push edi
push esi
mov esi, dword [ebp + 8]
push esi
call fcn.00418ab0
add esp, 0xc
xor ecx, ecx
jmp 0x4163c7
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0xc], ecx
jle 0x41626f
add ebx, 0x10
push esi
mov dword [esi + 8], ebx
call fcn.0041c780
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov eax, ecx
mov dword [esi + 8], edx
mov ecx, dword [eax + 0x10]
add esp, 4
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov ecx, dword [esp + 0x18]
mov eax, edi
shr eax, 0x17
shl eax, 4
mov edx, dword [eax + ecx]
add eax, ecx
mov dword [ebx + 0x10], edx
mov edx, dword [eax + 4]
mov dword [ebx + 0x14], edx
mov edx, dword [eax + 8]
mov dword [ebx + 0x18], edx
mov edx, dword [eax + 0xc]
shr edi, 0xe
mov dword [ebx + 0x1c], edx
test edi, 0x100
je 0x41643a
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416445
and edi, 0x1ff
shl edi, 4
add edi, ecx
push ebx
push edi
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00414fc0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
add esp, 0x10
mov dword [esp + 0x18], edx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x41647e
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416485
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x4164a3
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x4164b0
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov edx, 0x13
cmp ecx, edx
jne 0x4164d8
cmp dword [edi + 8], edx
jne 0x4164d8
mov ecx, dword [edi]
add ecx, dword [eax]
mov esi, dword [edi + 4]
adc esi, dword [eax + 4]
mov dword [ebx], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], edx
jmp case.default.0x416094
cmp ecx, 3
jne 0x4164e8
fld qword [eax]
fstp qword [esp + 0xb8]
jmp 0x4164fc
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0xb8]
call fcn.00414d60
test eax, eax
je 0x41653f
cmp dword [edi + 8], 3
jne 0x41650d
fld qword [edi]
fstp qword [esp + 0xc8]
jmp 0x41651f
lea ebx, [esp + 0xc8]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x41653f
fld qword [esp + 0xc8]
mov eax, dword [esp + 0x28]
fadd qword [esp + 0xb8]
mov dword [eax + 8], 3
fstp qword [eax]
jmp case.default.0x416094
push 6
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
push edx
push edi
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041cd20
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x10]
add esp, 0x14
mov dword [esp + 0x18], eax
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416582
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416589
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x4165a7
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x4165b4
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov edx, 0x13
cmp ecx, edx
jne 0x4165dc
cmp dword [edi + 8], edx
jne 0x4165dc
mov ecx, dword [eax]
sub ecx, dword [edi]
mov eax, dword [eax + 4]
sbb eax, dword [edi + 4]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebx + 8], edx
jmp case.default.0x416094
cmp ecx, 3
jne 0x4165ec
fld qword [eax]
fstp qword [esp + 0xf8]
jmp 0x416600
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0xf8]
call fcn.00414d60
test eax, eax
je 0x416643
cmp dword [edi + 8], 3
jne 0x416611
fld qword [edi]
fstp qword [esp + 0xa8]
jmp 0x416623
lea ebx, [esp + 0xa8]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x416643
fld qword [esp + 0xf8]
mov eax, dword [esp + 0x28]
fsub qword [esp + 0xa8]
mov dword [eax + 8], 3
fstp qword [eax]
jmp case.default.0x416094
push 7
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push ecx
push edi
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0041cd20
add esp, 0x14
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x18], edx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416686
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x41668d
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x4166ab
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x4166b8
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov esi, 0x13
cmp ecx, esi
jne 0x4166e9
cmp dword [edi + 8], esi
jne 0x4166e9
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [edi + 4]
push ecx
mov ecx, dword [edi]
push edx
push eax
push ecx
call fcn.004b79b0
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
jmp case.default.0x416094
cmp ecx, 3
jne 0x4166f9
fld qword [eax]
fstp qword [esp + 0xd8]
jmp 0x41670d
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0xd8]
call fcn.00414d60
test eax, eax
je 0x416750
cmp dword [edi + 8], 3
jne 0x41671e
fld qword [edi]
fstp qword [esp + 0x118]
jmp 0x416730
lea ebx, [esp + 0x118]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x416750
fld qword [esp + 0x118]
mov eax, dword [esp + 0x28]
fmul qword [esp + 0xd8]
mov dword [eax + 8], 3
fstp qword [eax]
jmp case.default.0x416094
push 8
jmp 0x416541
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416771
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416778
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x416796
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x4167a3
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [eax + 8], 3
jne 0x4167b4
fld qword [eax]
fstp qword [esp + 0x108]
jmp 0x4167c8
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x108]
call fcn.00414d60
test eax, eax
je 0x41680b
cmp dword [edi + 8], 3
jne 0x4167d9
fld qword [edi]
fstp qword [esp + 0xe8]
jmp 0x4167eb
lea ebx, [esp + 0xe8]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x41680b
fld qword [esp + 0x108]
mov eax, dword [esp + 0x28]
fdiv qword [esp + 0xe8]
mov dword [eax + 8], 3
fstp qword [eax]
jmp case.default.0x416094
push 0xb
jmp 0x416645
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x41682c
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416833
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov esi, eax
test edi, 0x100
je 0x41684f
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x41685c
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [esi + 8], 0x13
jne 0x416877
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
jmp 0x41688f
lea edx, [esp + 0x88]
push 0
push edx
mov eax, esi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x4168e0
cmp dword [edi + 8], 0x13
jne 0x4168a4
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
jmp 0x4168c1
lea eax, [esp + 0x58]
push 0
push eax
mov eax, edi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x4168e0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
and ecx, dword [esp + 0x88]
and eax, dword [esp + 0x8c]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
push 0xd
push ebx
push edi
push esi
jmp 0x41654c
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416904
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x41690b
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov esi, eax
test edi, 0x100
je 0x416927
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416934
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [esi + 8], 0x13
jne 0x41694f
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
jmp 0x416967
lea eax, [esp + 0x80]
push 0
push eax
mov eax, esi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x4169b8
cmp dword [edi + 8], 0x13
jne 0x41697c
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
jmp 0x416999
lea ecx, [esp + 0x68]
push 0
push ecx
mov eax, edi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x4169b8
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
or ecx, dword [esp + 0x80]
or eax, dword [esp + 0x84]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
mov edx, dword [ebp + 8]
push 0xe
push ebx
push edi
push esi
push edx
call fcn.0041cd20
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
add esp, 0x14
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x4169f3
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x4169fa
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov esi, eax
test edi, 0x100
je 0x416a16
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416a23
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [esi + 8], 0x13
jne 0x416a38
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
jmp 0x416a4d
lea ecx, [esp + 0x50]
push 0
push ecx
mov eax, esi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x416a98
cmp dword [edi + 8], 0x13
jne 0x416a62
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
jmp 0x416a7f
lea edx, [esp + 0x78]
push 0
push edx
mov eax, edi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x416a98
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
xor ecx, dword [esp + 0x50]
xor eax, dword [esp + 0x54]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
push 0xf
push ebx
push edi
push esi
jmp 0x416650
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416abc
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416ac3
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov esi, eax
test edi, 0x100
je 0x416adf
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416aec
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [esi + 8], 0x13
jne 0x416b01
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x416b1a
lea edx, [esp + 0x38]
push 0
push edx
mov eax, esi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x416bd9
cmp dword [edi + 8], 0x13
jne 0x416b2f
mov ecx, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edi
jmp 0x416b50
lea eax, [esp + 0x60]
push 0
push eax
mov eax, edi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x416bd9
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
test edi, edi
jg 0x416ba6
jl 0x416b5a
test ecx, ecx
jae 0x416b9b
cmp edi, 0xffffffff
jg 0x416b7b
jl 0x416b66
cmp ecx, 0xffffffc0
ja 0x416b7b
xor eax, eax
xor edx, edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
neg ecx
call fcn.004b7970
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
test edi, edi
jl 0x416bbb
jg 0x416ba6
cmp ecx, 0x40
jb 0x416bbb
xor eax, eax
xor edx, edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
call fcn.004c5170
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
push 0x10
push ebx
push edi
push esi
jmp 0x41654c
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416bfd
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416c04
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov esi, eax
test edi, 0x100
je 0x416c20
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416c2d
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [esi + 8], 0x13
jne 0x416c42
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
jmp 0x416c5b
lea eax, [esp + 0x40]
push 0
push eax
mov eax, esi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x416d10
cmp dword [edi + 8], 0x13
jne 0x416c70
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jmp 0x416c91
lea ecx, [esp + 0x70]
push 0
push ecx
mov eax, edi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x416d10
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
neg ecx
adc eax, 0
neg eax
test eax, eax
jg 0x416cee
jl 0x416ca2
test ecx, ecx
jae 0x416ce3
cmp eax, 0xffffffff
jg 0x416cc3
jl 0x416cae
cmp ecx, 0xffffffc0
ja 0x416cc3
xor eax, eax
xor edx, edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
neg ecx
call fcn.004b7970
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
test eax, eax
jl 0x416d03
jg 0x416cee
cmp ecx, 0x40
jb 0x416d03
xor eax, eax
xor edx, edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 0x13
jmp case.default.0x416094
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
jmp 0x416bc3
mov edx, dword [ebp + 8]
push 0x11
push ebx
push edi
push esi
push edx
call fcn.0041cd20
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
add esp, 0x14
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416d4b
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416d52
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x416d70
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416d7d
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov esi, 0x13
cmp ecx, esi
jne 0x416db5
cmp dword [edi + 8], esi
jne 0x416db5
mov edx, dword [edi]
mov edi, dword [edi + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push edi
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push edx
call fcn.00415af0
add esp, 0x14
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
jmp case.default.0x416094
cmp ecx, 3
jne 0x416dc5
fld qword [eax]
fstp qword [esp + 0x128]
jmp 0x416dd9
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x128]
call fcn.00414d60
test eax, eax
je 0x416e51
cmp dword [edi + 8], 3
jne 0x416dea
fld qword [edi]
fstp qword [esp + 0x98]
jmp 0x416dfc
lea ebx, [esp + 0x98]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x416e51
fld qword [esp + 0x128]
fld qword [esp + 0x98]
call sub.MSVCR100.dll__CIfmod
fld st(0)
fld qword [esp + 0x98]
fmul st(1), st(0)
fxch st(1)
fcomp qword [0x4f2b88]
fnstsw ax
test ah, 5
jp 0x416e3d
mov eax, dword [esp + 0x28]
faddp st(1)
mov dword [eax + 8], 3
fstp qword [eax]
jmp case.default.0x416094
mov eax, dword [esp + 0x28]
fstp st(0)
fstp qword [eax]
mov dword [eax + 8], 3
jmp case.default.0x416094
push 9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
push eax
push edi
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0041cd20
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
add esp, 0x14
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416e94
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416e9b
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x416eb9
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416ec6
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov esi, 0x13
cmp ecx, esi
jne 0x416efe
cmp dword [edi + 8], esi
jne 0x416efe
mov edx, dword [edi]
mov edi, dword [edi + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push edi
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push edx
call fcn.00415a70
add esp, 0x14
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
jmp case.default.0x416094
cmp ecx, 3
jne 0x416f0e
fld qword [eax]
fstp qword [esp + 0xb0]
jmp 0x416f22
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0xb0]
call fcn.00414d60
test eax, eax
je 0x416f73
cmp dword [edi + 8], 3
jne 0x416f33
fld qword [edi]
fstp qword [esp + 0xc0]
jmp 0x416f45
lea ebx, [esp + 0xc0]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x416f73
fld qword [esp + 0xb0]
sub esp, 8
fdiv qword [esp + 0xc8]
fstp qword [esp]
call sub.MSVCR100.dll_floor
mov eax, dword [esp + 0x30]
fstp qword [eax]
add esp, 8
mov dword [eax + 8], 3
jmp case.default.0x416094
push 0xc
jmp 0x416e53
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x416f94
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x416f9b
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
mov dword [esp + 0x20], eax
test edi, 0x100
je 0x416fb9
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x416fc6
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
cmp dword [eax + 8], 3
jne 0x416fd7
fld qword [eax]
fstp qword [esp + 0xe0]
jmp 0x416feb
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0xe0]
call fcn.00414d60
test eax, eax
je 0x417033
cmp dword [edi + 8], 3
jne 0x416ffc
fld qword [edi]
fstp qword [esp + 0xd0]
jmp 0x41700e
lea ebx, [esp + 0xd0]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x417033
fld qword [esp + 0xe0]
fld qword [esp + 0xd0]
call sub.MSVCR100.dll__CIpow
mov eax, dword [esp + 0x28]
fstp qword [eax]
mov dword [eax + 8], 3
jmp case.default.0x416094
push 0xa
jmp 0x416541
shr edi, 0x17
shl edi, 4
add edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
cmp eax, 0x13
jne 0x417065
mov ecx, dword [edi]
mov edx, dword [edi + 4]
neg ecx
adc edx, 0
neg edx
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
jmp case.default.0x416094
cmp eax, 3
jne 0x417075
fld qword [edi]
fstp qword [esp + 0xf0]
jmp 0x417087
lea ebx, [esp + 0xf0]
mov esi, edi
call fcn.00414d60
test eax, eax
je 0x4170a2
fld qword [esp + 0xf0]
mov eax, dword [esp + 0x28]
fchs
mov dword [eax + 8], 3
fstp qword [eax]
jmp case.default.0x416094
mov eax, dword [esp + 0x28]
push 0x12
push eax
push edi
push edi
jmp 0x41654c
shr edi, 0x17
shl edi, 4
add edi, dword [esp + 0x18]
mov esi, 0x13
cmp dword [edi + 8], esi
jne 0x4170e2
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
not eax
not edi
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov dword [ebx + 8], esi
jmp case.default.0x416094
lea ecx, [esp + 0x48]
push 0
push ecx
mov eax, edi
call fcn.00414dd0
add esp, 8
test eax, eax
je 0x417110
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
not eax
not edi
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov dword [ebx + 8], esi
jmp case.default.0x416094
push esi
push ebx
push edi
push edi
jmp 0x416e5e
shr edi, 0x17
shl edi, 4
add edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
test eax, eax
je 0x417144
cmp eax, 1
jne 0x417134
cmp dword [edi], 0
je 0x417144
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp case.default.0x416094
mov eax, 1
mov dword [ebx], eax
mov dword [ebx + 8], eax
jmp case.default.0x416094
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 8]
mov ebx, edi
shr ebx, 0x17
shl ebx, 4
add ebx, dword [esp + 0x18]
push edx
push eax
call fcn.00415960
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x10]
add esp, 8
mov dword [esp + 0x18], edx
jmp case.default.0x416094
mov eax, dword [ebp + 8]
mov ebx, edi
shr edi, 0xe
and edi, 0x1ff
lea ecx, [edi + 1]
shr ebx, 0x17
sub edi, ebx
shl ecx, 4
add ecx, dword [esp + 0x18]
inc edi
push edi
push eax
mov dword [eax + 8], ecx
call fcn.00415720
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0x10]
lea eax, [esi + ecx]
shl ebx, 4
mov edx, dword [ebx + ecx]
add ebx, ecx
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx + 0xc]
add esp, 8
cmp dword [ecx + 0xc], 0
jle 0x41720a
cmp eax, ebx
jb 0x4171e4
lea ebx, [eax + 0x10]
mov esi, edx
push esi
mov dword [esi + 8], ebx
call fcn.0041c780
mov edx, dword [edi + 4]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 4]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esi + 8], ecx
jmp case.default.0x416094
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 4]
mov esi, edx
mov dword [esp + 0x18], eax
mov dword [esi + 8], ecx
jmp case.default.0x416094
cmp dword [esp + 0x2c], 0
jle 0x417242
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [edx + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea edx, [ecx + eax*8 - 0x10]
push edx
call fcn.00419800
add esp, 4
mov eax, dword [esp + 0x1c]
shr edi, 0xe
lea ecx, [edi*4 - 0x7fffc]
add dword [eax + 0x14], ecx
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
test eax, 0x100
je 0x417272
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x417279
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0xe
test edi, 0x100
je 0x417293
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x4172a0
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x18]
push edi
push eax
mov eax, dword [ebp + 8]
call fcn.004154e0
mov ecx, dword [esp + 0x24]
add esp, 8
cmp eax, dword [esp + 0x2c]
je 0x4172c7
mov eax, dword [ecx + 0x10]
add dword [ecx + 0x14], 4
mov dword [esp + 0x18], eax
jmp case.default.0x416094
mov edx, dword [ecx + 0x14]
mov edi, dword [edx]
mov eax, edi
shr eax, 6
and eax, 0xff
jle 0x4172f5
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea eax, [edx + eax*8 - 0x10]
push eax
call fcn.00419800
mov ecx, dword [esp + 0x20]
add esp, 4
mov eax, dword [ecx + 0x10]
shr edi, 0xe
lea edx, [edi*4 - 0x7fff8]
add dword [ecx + 0x14], edx
mov dword [esp + 0x18], eax
jmp case.default.0x416094
mov eax, edi
shr eax, 0xe
test eax, 0x100
je 0x417328
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x417334
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0x17
test edi, 0x100
je 0x41734e
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x417355
shl edi, 4
add edi, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
mov esi, eax
push ecx
mov eax, edi
call fcn.00415320
mov edi, dword [esp + 0x20]
add esp, 4
cmp eax, dword [esp + 0x2c]
je 0x41737f
mov ecx, dword [edi + 0x10]
add dword [edi + 0x14], 4
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov edx, dword [edi + 0x14]
mov ebx, dword [edx]
mov eax, ebx
shr eax, 6
and eax, 0xff
jle 0x4173a5
mov ecx, dword [edi + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea edx, [ecx + eax*8 - 0x10]
push edx
call fcn.00419800
add esp, 4
mov ecx, dword [edi + 0x10]
shr ebx, 0xe
lea eax, [ebx*4 - 0x7fff8]
add dword [edi + 0x14], eax
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov eax, edi
shr eax, 0xe
test eax, 0x100
je 0x4173d8
and eax, 0xff
shl eax, 4
add eax, dword [esp + 0x24]
jmp 0x4173e4
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x18]
shr edi, 0x17
test edi, 0x100
je 0x4173fe
and edi, 0xff
shl edi, 4
add edi, dword [esp + 0x24]
jmp 0x417405
shl edi, 4
add edi, dword [esp + 0x18]
mov edx, dword [ebp + 8]
push edi
push edx
mov esi, eax
call fcn.004153f0
mov edi, dword [esp + 0x24]
add esp, 8
cmp eax, dword [esp + 0x2c]
je 0x41742e
mov ecx, dword [edi + 0x10]
add dword [edi + 0x14], 4
mov dword [esp + 0x18], ecx
jmp case.default.0x416094
mov eax, dword [edi + 0x14]
mov ebx, dword [eax]
jmp 0x417384
mov eax, dword [ebx + 8]
test edi, 0x7fc000
je 0x417495
test eax, eax
je 0x4174a3
cmp eax, 1
jne 0x417451
cmp dword [ebx], 0
je 0x4174a3
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x14]
mov edi, dword [edx]
mov eax, edi
shr eax, 6
and eax, 0xff
jle 0x417483
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
mov esi, dword [ebp + 8]
add eax, eax
lea eax, [edx + eax*8 - 0x10]
push eax
call fcn.00419800
mov ecx, dword [esp + 0x20]
add esp, 4
shr edi, 0xe
lea edx, [edi*4 - 0x7fff8]
add dword [ecx + 0x14], edx
jmp case.default.0x416094
test eax, eax
je 0x417451
cmp eax, 1
jne 0x4174a3
cmp dword [ebx], 0
je 0x417451
mov eax, dword [esp + 0x1c]
add dword [eax + 0x14], 4
jmp case.default.0x416094
mov eax, edi
shr eax, 0x17
shl eax, 4
add eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
test edi, 0x7fc000
je 0x4174f9
test ecx, ecx
je 0x417507
cmp ecx, 1
jne 0x4174d5
cmp dword [eax], 0
je 0x417507
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 0xc], edx
mov eax, dword [ecx + 0x14]
mov edi, dword [eax]
jmp 0x41745a
test ecx, ecx
je 0x4174d5
cmp ecx, 1
jne 0x417507
cmp dword [eax], 0
je 0x4174d5
mov eax, dword [esp + 0x1c]
add dword [eax + 0x14], 4
jmp case.default.0x416094
mov esi, dword [ebp + 8]
mov eax, edi
shr edi, 0xe
and edi, 0x1ff
shr eax, 0x17
dec edi
test eax, eax
je 0x417532
shl eax, 4
add eax, ebx
mov dword [esi + 8], eax
push edi
mov eax, ebx
mov ecx, esi
call fcn.004130b0
add esp, 4
test eax, eax
je 0x417bd3
test edi, edi
js 0x4161b9
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov edx, eax
mov dword [esi + 8], ecx
mov eax, dword [edx + 0x10]
mov dword [esp + 0x18], eax
jmp case.default.0x416094
mov esi, dword [ebp + 8]
shr edi, 0x17
test edi, edi
je 0x417579
shl edi, 4
add edi, ebx
mov dword [esi + 8], edi
push 0xffffffffffffffff
mov eax, ebx
mov ecx, esi
call fcn.004130b0
add esp, 4
test eax, eax
jne 0x41665c
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 + 0x28], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + 0x1c], 0
mov dword [esp + 0x20], edx
jle 0x4175d8
mov edx, dword [ebx + 0x10]
mov esi, dword [ebp + 8]
push edx
call fcn.00419800
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x20], 0
cmp edx, dword [esp + 0x2c]
jae 0x417626
mov ecx, edx
xor eax, eax
lea ebx, [ebx]
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 + 0x20]
inc eax
mov dword [esp + 0x20], eax
shl eax, 4
lea ecx, [edx + eax]
cmp ecx, dword [esp + 0x2c]
jb 0x4175f0
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x28]
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 + 0x1c], ebx
jmp 0x415f39
cmp dword [ebx + 8], 0x13
jne 0x4176ce
mov eax, dword [ebx]
add eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 0x14]
adc ecx, edx
test edx, edx
jl 0x41768f
jg 0x41767b
cmp dword [ebx + 0x20], 0
jbe 0x41768f
cmp ecx, esi
jl 0x4176a2
jg case.default.0x416094
cmp eax, dword [ebx + 0x10]
jbe 0x4176a2
jmp case.default.0x416094
cmp esi, ecx
jg case.default.0x416094
jl 0x4176a2
cmp dword [ebx + 0x10], eax
ja case.default.0x416094
mov edx, dword [esp + 0x1c]
shr edi, 0xe
lea esi, [edi*4 - 0x7fffc]
add dword [edx + 0x14], esi
mov edx, 0x13
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x38], edx
jmp case.default.0x416094
fld qword [ebx + 0x20]
fld qword [ebx]
fadd st(1)
fld qword [ebx + 0x10]
fxch st(2)
fcomp qword [0x4f2b88]
fnstsw ax
fcom st(1)
test ah, 0x41
fnstsw ax
fstp st(1)
jne 0x4176f7
test ah, 0x41
jnp 0x417700
jmp 0x415f60
test ah, 1
jne 0x415f60
mov eax, dword [esp + 0x1c]
shr edi, 0xe
lea ecx, [edi*4 - 0x7fffc]
add dword [eax + 0x14], ecx
fst qword [ebx]
mov eax, 3
mov dword [ebx + 8], eax
fstp qword [ebx + 0x30]
mov dword [ebx + 0x38], eax
jmp case.default.0x416094
mov ecx, 0x13
lea eax, [ebx + 0x20]
lea esi, [ebx + 0x10]
mov dword [esp + 0x2c], eax
cmp dword [ebx + 8], ecx
jne 0x4177b5
cmp dword [eax + 8], ecx
jne 0x4177b5
mov ecx, dword [eax + 4]
lea edx, [esp + 0x94]
push edx
mov edx, dword [eax]
push ecx
push edx
lea edi, [esp + 0x10c]
mov eax, esi
call fcn.00414ef0
add esp, 0xc
test eax, eax
je 0x4177b1
cmp dword [esp + 0x94], 0
mov eax, dword [esp + 0x28]
je 0x417777
xor ecx, ecx
xor edx, edx
jmp 0x41777c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [esp + 0x100]
mov dword [esi], edi
mov edi, dword [esp + 0x104]
mov dword [esi + 4], edi
mov edi, 0x13
mov dword [esi + 8], edi
mov esi, dword [esp + 0x2c]
sub ecx, dword [esi]
sbb edx, dword [esi + 4]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x417242
mov edi, dword [esp + 0x20]
mov eax, 3
cmp dword [esi + 8], eax
jne 0x4177ca
fld qword [esi]
fstp qword [esp + 0x110]
jmp 0x4177e3
lea ebx, [esp + 0x110]
call fcn.00414d60
test eax, eax
je 0x417c68
mov eax, 3
fld qword [esp + 0x110]
mov ecx, dword [esp + 0x2c]
fstp qword [esi]
mov dword [esi + 8], eax
cmp dword [ecx + 8], eax
jne 0x417803
fld qword [ecx]
fstp qword [esp + 0xa0]
jmp 0x417820
mov esi, dword [esp + 0x2c]
lea ebx, [esp + 0xa0]
call fcn.00414d60
test eax, eax
je 0x417c76
mov eax, 3
mov ecx, dword [esp + 0x2c]
fld qword [esp + 0xa0]
fstp qword [ecx]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 8], eax
jne 0x41785a
fld qword [ecx]
mov dword [ecx + 8], eax
fstp qword [esp + 0x120]
fld qword [esp + 0x120]
fsub qword [esp + 0xa0]
fstp qword [ecx]
jmp 0x417242
mov esi, dword [esp + 0x28]
lea ebx, [esp + 0x120]
call fcn.00414d60
test eax, eax
je 0x417c84
fld qword [esp + 0x120]
mov ecx, esi
fsub qword [esp + 0xa0]
mov eax, 3
mov dword [ecx + 8], eax
fstp qword [ecx]
jmp 0x417242
mov edx, dword [ebx + 0x20]
mov dword [ebx + 0x50], edx
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x54], ecx
mov edx, dword [ebx + 0x28]
lea eax, [ebx + 0x30]
mov dword [eax + 0x28], edx
mov ecx, dword [ebx + 0x2c]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebx + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ebx + 0x14]
mov esi, dword [ebp + 8]
mov dword [eax + 0x14], ecx
mov edx, dword [ebx + 0x18]
mov dword [eax + 0x18], edx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], ecx
mov edx, dword [ebx]
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 8]
push 1
shr edi, 0xe
mov dword [eax + 8], edx
mov ecx, dword [ebx + 0xc]
and edi, 0x1ff
push edi
push eax
lea edx, [eax + 0x30]
mov dword [eax + 0xc], ecx
push esi
mov dword [esi + 8], edx
call fcn.004133b0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x14]
mov esi, dword [eax]
mov dword [esp + 0x30], esi
mov edi, dword [esp + 0x30]
shr esi, 6
and esi, 0xff
add eax, 4
shl esi, 4
add esp, 0x10
add esi, edx
mov dword [esp + 0x18], edx
mov dword [ecx + 0x14], eax
mov dword [esp + 0x28], esi
mov ebx, esi
cmp dword [ebx + 0x18], 0
je case.default.0x416094
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
mov dword [ebx], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x1c]
shr edi, 0xe
lea edx, [edi*4 - 0x7fffc]
mov dword [ebx + 0xc], ecx
add dword [eax + 0x14], edx
jmp case.default.0x416094
mov esi, edi
shr edi, 0xe
shr esi, 0x17
and edi, 0x1ff
mov dword [esp + 0x2c], esi
mov eax, edi
test esi, esi
jne 0x417990
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 8]
sub esi, ebx
sar esi, 4
dec esi
mov dword [esp + 0x2c], esi
test eax, eax
jne 0x4179a6
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx]
shr eax, 6
add ecx, 4
mov dword [edx + 0x14], ecx
mov edi, dword [ebx]
dec eax
imul eax, eax, 0x32
add eax, esi
mov dword [esp + 0x20], eax
cmp eax, dword [edi + 8]
jbe 0x4179de
cmp dword [edi + 0x10], 0x4ee590
jne 0x4179c4
xor edx, edx
jmp 0x4179ce
mov cl, byte [edi + 7]
mov edx, 1
shl edx, cl
push edx
mov edx, dword [ebp + 8]
push eax
push edx
mov eax, edi
call fcn.00418ab0
add esp, 0xc
test esi, esi
jle 0x417a92
mov esi, dword [esp + 0x2c]
shl esi, 4
add esi, ebx
nop
mov eax, dword [esp + 0x20]
xor ebx, ebx
push ebx
push eax
mov edx, edi
call fcn.00419040
add esp, 8
cmp eax, 0x4ee480
jne 0x417a3b
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x130]
push edx
push edi
push eax
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], 0x13
call fcn.00418e50
add esp, 0xc
mov ecx, dword [esi]
dec dword [esp + 0x20]
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
test byte [esi + 8], 0x40
je 0x417a7e
mov al, byte [edi + 5]
test al, 4
je 0x417a7e
mov ecx, dword [esi]
test byte [ecx + 5], 3
je 0x417a7e
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xc]
and al, 0xfb
mov byte [edi + 5], al
mov eax, dword [ecx + 0x50]
mov dword [edi + 0x1c], eax
mov dword [ecx + 0x50], edi
mov eax, dword [esp + 0x2c]
dec eax
sub esi, 0x10
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x4179f0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov dword [eax + 8], edx
jmp case.default.0x416094
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x34]
mov eax, dword [esp + 0x18]
shr edi, 0xe
mov edi, dword [edx + edi*4]
push eax
add esi, 0x10
push esi
mov ecx, edi
call fcn.00415bb0
add esp, 8
test eax, eax
jne 0x417ae1
mov ecx, dword [esp + 0x18]
push ebx
push ecx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.00415c20
add esp, 0x14
jmp 0x417aed
mov esi, dword [ebp + 8]
mov dword [ebx], eax
mov dword [ebx + 8], 0x46
mov edx, dword [esi + 0xc]
cmp dword [edx + 0xc], 0
jle 0x4161b9
add ebx, 0x10
push esi
mov dword [esi + 8], ebx
call fcn.0041c780
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov edx, eax
mov dword [esi + 8], ecx
mov eax, dword [edx + 0x10]
add esp, 4
mov dword [esp + 0x18], eax
jmp case.default.0x416094
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
shr edi, 0x17
lea edx, [edi - 1]
mov edi, dword [esp + 0x18]
sub edi, dword [ecx]
mov ecx, dword [eax + 0xc]
movzx eax, byte [ecx + 6]
sar edi, 4
sub edi, eax
dec edi
test edx, edx
jns 0x417b86
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x18]
sub ecx, dword [ebx + 8]
mov edx, edi
sar ecx, 4
mov dword [esp + 0x20], edx
cmp ecx, edi
jg 0x417b69
push edi
mov eax, ebx
call fcn.00412db0
add esp, 4
mov edx, edi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
add esi, eax
mov ecx, edi
shl ecx, 4
add ecx, esi
mov dword [ebx + 8], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], esi
mov ebx, esi
xor ecx, ecx
test edx, edx
jle case.default.0x416094
mov eax, dword [esp + 0x18]
mov esi, edi
shl esi, 4
sub eax, esi
jmp 0x417ba0
cmp ecx, edi
jge 0x417bbc
mov esi, dword [eax]
mov dword [ebx], esi
mov esi, dword [eax + 4]
mov dword [ebx + 4], esi
mov esi, dword [eax + 8]
mov dword [ebx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [ebx + 0xc], esi
jmp 0x417bc3
mov dword [ebx + 8], 0
inc ecx
add eax, 0x10
add ebx, 0x10
cmp ecx, edx
jl 0x417ba0
jmp case.default.0x416094
mov esi, dword [esi + 0x10]
or byte [esi + 0x22], 8
mov dword [esp + 0x1c], esi
jmp 0x415f39
mov esi, dword [ebp + 8]
shr edi, 0x17
test edi, edi
je 0x417bf6
add edi, edi
lea eax, [ebx + edi*8 - 0x10]
mov dword [esi + 8], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0xc]
cmp dword [edx + 0x1c], 0
jle 0x417c13
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 8]
push eax
call fcn.00419800
add esp, 4
mov eax, ebx
mov ecx, esi
call fcn.00413310
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x22], 8
je 0x417c92
mov edx, dword [esi + 0x10]
mov dword [esp + 0x1c], edx
test eax, eax
je 0x415f39
mov eax, edx
mov ecx, dword [eax + 4]
mov dword [esi + 8], ecx
jmp 0x415f39
cmp dword [esp + 0x28], 0
je 0x417c50
mov dword [esi + 0x64], 1
add dword [ebx + 0x14], 0xfffffffc
or byte [ebx + 0x22], 0x40
mov edx, dword [esi + 8]
push 1
sub edx, 0x10
push esi
mov dword [ebx], edx
call fcn.00412b70
mov eax, dword [ebp + 8]
push str.for_limit_must_be_a_number
push eax
call fcn.00414d30
mov ecx, dword [ebp + 8]
push str.for_step_must_be_a_number
push ecx
call fcn.00414d30
mov edx, dword [ebp + 8]
push str.for_initial_value_must_be_a_number
push edx
call fcn.00414d30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret