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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
push ebx
push esi
push edi
mov dword [esp + 0x34], 0
jmp 0x46ea10
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
lea edx, [esp + 0x18]
mov dword [ecx + 0x14], edx
mov ecx, dword [eax + 0x14]
mov dword [ecx + 8], 2
mov edx, dword [eax + 0x14]
mov ecx, dword [edx + 0x10]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x18], ecx
mov eax, dword [edx - 8]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov dword [esp + 0x14], ecx
jmp case.0x46ea81.47
fstp st(0)
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
add edx, 4
mov dword [esp + 0x18], edx
mov edi, dword [edx - 4]
mov eax, edi
shr eax, 0x18
mov dword [esp + 0x20], eax
shl eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], eax
add eax, ecx
mov ecx, edi
and ecx, 0x3f
cmp ecx, 0x30
mov dword [esp + 0xc], eax
ja case.0x46ea81.47
jmp dword [ecx*4 + 0x4708c8]
shr edi, 0xf
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov ecx, dword [edi]
mov dword [eax], ecx
mov edx, dword [edi + 8]
mov dword [eax + 8], edx
mov ecx, dword [edi + 0xc]
mov dword [eax + 0xc], ecx
jmp case.0x46ea81.47
shr edi, 6
and edi, 0x3ffff
shl edi, 4
add edi, dword [esp + 0x14]
mov edx, dword [edi]
mov dword [eax], edx
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [eax + 0xc], edx
jmp case.0x46ea81.47
mov ecx, edi
shr ecx, 0xf
and ecx, 0x1ff
test edi, 0x7fc0
mov dword [eax], 1
mov dword [eax + 8], ecx
je case.0x46ea81.47
add dword [esp + 0x18], 4
jmp case.0x46ea81.47
shr edi, 0xf
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x10]
lea ecx, [ecx]
mov dword [edi], 0
sub edi, 0x10
cmp edi, eax
jae 0x46eb10
jmp case.0x46ea81.47
mov edx, dword [esp + 0x2c]
shr edi, 0xf
and edi, 0x1ff
mov eax, dword [edx + edi*4 + 0x20]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp case.0x46ea81.47
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
shr edi, 6
and edi, 0x3ffff
shl edi, 4
add edi, dword [esp + 0x14]
sar edx, 2
mov esi, edi
mov ecx, dword [esi + 8]
lea ebx, [eax + edx*8 - 8]
movzx edx, word [ecx + 0x18]
mov eax, dword [ebx]
add ecx, 0x18
cmp dx, 0x73
mov dword [esp + 0x20], 0
jne 0x46eb96
cmp word [ecx + 2], 0x65
je 0x46eba3
cmp dx, 0x5f
jne 0x46eba4
cmp word [ecx + 2], 0x47
jne 0x46eba4
nop
test eax, eax
jns 0x46ebc3
mov ecx, dword [esp + 0x2c]
mov edi, dword [ebx + 4]
mov ecx, dword [ecx + 0x18]
push esi
call fcn.0046dac0
add esp, 4
test eax, eax
jne 0x46eb36
mov edx, dword [esi + 8]
mov edi, dword [esp + 0x2c]
mov eax, dword [edi + 0x18]
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
mov dword [0x5f023c], 0x80000000
call fcn.0046c810
add esp, 0xc
cmp dword [eax], 0
jne 0x46ec37
test byte [esp + 0x20], 1
jne 0x46ec37
push 0
push esi
mov esi, dword [ebp + 8]
lea ecx, [edi + 0x10]
push ecx
lea eax, [esp + 0x2c]
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0046d740
mov ecx, dword [0x5f023c]
add esp, 0xc
test ecx, ecx
jns 0x46ef56
mov dword [ebx], ecx
mov edx, dword [edi + 0x18]
mov ecx, dword [edx + 0xc]
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 0xc]
add ecx, dword [esp + 0x30]
jmp 0x46eb3a
mov ecx, dword [0x5f023c]
test ecx, ecx
jns 0x46eb36
mov dword [ebx], ecx
mov ecx, dword [edi + 0x18]
mov edx, dword [ecx + 0xc]
mov dword [ebx + 4], edx
jmp 0x46eb36
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
shr edi, 6
mov dword [esp + 0x1c], 0
sub edx, dword [eax + 0xc]
and edi, 0x3ffff
shl edi, 4
lea ebx, [edi + ecx]
mov ecx, dword [eax + 0x50]
sar edx, 2
lea eax, [ecx + edx*8 - 8]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
test eax, eax
jns 0x46ecad
mov edx, dword [esp + 0x20]
mov edi, dword [edx + 4]
mov ecx, dword [esi + 8]
push ebx
call fcn.0046dac0
add esp, 4
test eax, eax
jne 0x46eb36
cmp dword [esi], 6
mov dword [0x5f023c], 0x80000000
jne 0x46ed35
mov ecx, dword [ebx]
sub ecx, 4
mov eax, dword [esi + 8]
je 0x46ecf6
sub ecx, 1
je 0x46ece2
xor ecx, ecx
mov edi, ebx
mov esi, eax
mov dword [0x5f023c], ecx
mov dword [esp + 0x1c], ecx
call fcn.0046c6b0
jmp 0x46ed0c
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x1c]
push ecx
push edx
push eax
call fcn.0046c810
add esp, 0xc
jmp 0x46ed10
mov edi, dword [ebx + 8]
xor ecx, ecx
mov esi, eax
mov dword [0x5f023c], ecx
mov dword [esp + 0x1c], ecx
call fcn.0046c720
mov esi, dword [esp + 0x10]
cmp dword [eax], 0
jne 0x46edbd
test byte [esp + 0x1c], 1
jne 0x46ed49
mov ecx, dword [ebp + 8]
push 1
push ebx
push esi
lea eax, [esp + 0x28]
call fcn.0046d740
add esp, 0xc
jmp 0x46ed49
lea eax, [esp + 0x1c]
push eax
mov eax, dword [ebp + 8]
push 1
push ebx
push esi
call fcn.0046d810
add esp, 0x10
cmp dword [eax], 0
jne 0x46edbd
test byte [esp + 0x1c], 1
jne 0x46edbd
mov edx, dword [ebx + 8]
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x18]
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
mov dword [esp + 0x2c], 0
call fcn.0046c810
mov ecx, dword [eax]
add esp, 0xc
test ecx, ecx
jne 0x46eda6
test byte [esp + 0x20], 1
jne 0x46eda6
push ecx
add esi, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [esp + 0x2c]
mov ecx, esi
call fcn.0046d740
mov ecx, dword [esi + 0xc]
add esp, 0xc
add ecx, dword [esp + 0x30]
jmp 0x46eb3a
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
jmp case.0x46ea81.47
mov edx, dword [0x5f023c]
test edx, edx
jns 0x46eb36
mov ecx, dword [esp + 0x20]
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edx
jmp 0x46eb36
mov eax, dword [esp + 0x10]
mov ebx, edi
shr ebx, 0xf
and ebx, 0x1ff
shr edi, 6
shl ebx, 4
and edi, 0x1ff
add ebx, eax
cmp edi, 0xfa
jge 0x46ee11
shl edi, 4
add edi, eax
mov esi, edi
mov dword [esp + 0x1c], esi
jmp 0x46ee24
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
mov esi, edi
cmp dword [ebx], 6
jne 0x46ef38
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x10], 0
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
sar edx, 2
lea edi, [eax + edx*8 - 8]
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x20], edi
jns 0x46ee70
mov ecx, edi
mov edi, dword [ecx + 4]
mov ecx, dword [ebx + 8]
push esi
call fcn.0046dac0
add esp, 4
test eax, eax
jne 0x46eb36
mov edi, dword [esp + 0x20]
mov ecx, dword [esi]
sub ecx, 4
mov eax, dword [ebx + 8]
mov dword [0x5f023c], 0x80000000
je 0x46eeb6
sub ecx, 1
je 0x46eea2
mov edi, dword [esp + 0x1c]
xor ecx, ecx
mov esi, eax
mov dword [0x5f023c], ecx
mov dword [esp + 0x10], ecx
call fcn.0046c6b0
jmp 0x46eed0
mov edx, dword [esi + 8]
lea ecx, [esp + 0x10]
push ecx
push edx
push eax
call fcn.0046c810
add esp, 0xc
jmp 0x46eed8
xor ecx, ecx
mov dword [0x5f023c], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + 8]
mov esi, eax
call fcn.0046c720
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x46ef1a
test byte [esp + 0x10], 1
jne 0x46ef1a
push 0
push esi
mov esi, dword [ebp + 8]
push ebx
lea eax, [esp + 0x1c]
mov ecx, esi
call fcn.0046d740
mov ecx, dword [0x5f023c]
add esp, 0xc
test ecx, ecx
jns 0x46ef56
mov dword [edi], ecx
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0xc]
add ecx, dword [esp + 0x30]
jmp 0x46eb3a
mov ecx, dword [0x5f023c]
test ecx, ecx
jns 0x46eb36
mov dword [edi], ecx
mov ecx, dword [ebx + 8]
mov edx, dword [ecx + 0xc]
mov dword [edi + 4], edx
jmp 0x46eb36
lea ecx, [esp + 0x20]
push ecx
push 0
push esi
push ebx
mov esi, dword [ebp + 8]
mov eax, esi
mov dword [esp + 0x30], 0
call fcn.0046d810
add esp, 0x10
mov ecx, dword [esi + 0xc]
add ecx, dword [esp + 0x30]
jmp 0x46eb3a
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
shr edi, 6
sar edx, 2
lea edx, [eax + edx*8 - 8]
mov eax, dword [esp + 0xc]
push edx
and edi, 0x3ffff
push eax
shl edi, 4
add edi, dword [esp + 0x1c]
add ecx, 0x10
push edi
push ecx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0046db80
add esp, 0x14
jmp case.0x46ea81.47
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
shr edi, 6
sar edx, 2
lea edx, [eax + edx*8 - 8]
mov eax, dword [esp + 0xc]
push edx
mov edx, dword [ebp + 8]
and edi, 0x3ffff
push eax
shl edi, 4
add edi, dword [esp + 0x1c]
add ecx, 0x10
push edi
push ecx
mov ecx, dword [esp + 0x20]
push ecx
push edx
call fcn.0046ddc0
add esp, 0x18
jmp case.0x46ea81.47
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
shr edi, 0xf
and edi, 0x1ff
mov edi, dword [eax + edi*4 + 0x20]
mov eax, dword [edi + 8]
mov dword [eax], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
cmp dword [ecx], 5
jl case.0x46ea81.47
mov ecx, dword [ecx + 8]
test byte [ecx + 5], 3
je case.0x46ea81.47
mov al, byte [edi + 5]
test al, 4
je case.0x46ea81.47
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x10]
cmp byte [edx + 0x11], 1
jne 0x46f04b
push ecx
push edx
call fcn.004624f0
add esp, 8
jmp case.0x46ea81.47
mov cl, byte [edx + 0x10]
and cl, 3
and al, 0xf8
or cl, al
mov byte [edi + 5], cl
jmp case.0x46ea81.47
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
sub edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x50]
mov eax, edi
shr eax, 6
sar edx, 2
and eax, 0x1ff
cmp eax, 0xfa
lea ecx, [ecx + edx*8 - 8]
jge 0x46f08b
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x46f097
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 0xf
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46f0b1
shl edi, 4
add edi, dword [esp + 0x10]
jmp 0x46f0be
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
push ecx
push eax
mov eax, dword [ebp + 8]
push edi
push edx
push eax
call fcn.0046db80
add esp, 0x14
jmp case.0x46ea81.47
mov ebx, dword [ebp + 8]
mov ecx, edi
shr edi, 6
shr ecx, 0xf
and edi, 0x1ff
and ecx, 0x1ff
push edi
mov edi, ecx
sar ecx, 3
and edi, 7
shl edi, cl
mov esi, eax
push ebx
mov dword [esi], 6
call fcn.0046c400
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x3c]
add esp, 8
cmp ecx, dword [eax + 0x38]
jb case.0x46ea81.47
call fcn.00463310
jmp case.0x46ea81.47
mov eax, dword [esp + 0x10]
mov esi, edi
shr esi, 0xf
and esi, 0x1ff
shr edi, 6
shl esi, 4
and edi, 0x1ff
add esi, eax
cmp edi, 0xfa
jge 0x46f158
shl edi, 4
add edi, eax
mov ecx, edi
mov dword [esp + 0x20], edi
jmp 0x46f169
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
sar edx, 2
cmp dword [ecx], 5
lea edx, [eax + edx*8 - 8]
mov eax, dword [edx]
mov dword [esp + 0x1c], edx
jne 0x4708bd
mov edi, dword [esi]
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x10], edi
mov edi, dword [esi + 8]
mov dword [ebx + 0x18], edi
mov edi, dword [esi + 0xc]
mov dword [ebx + 0x1c], edi
cmp dword [esi], 6
jne 0x46f29d
test eax, eax
jns 0x46f1e7
mov edx, dword [edx + 4]
push ecx
mov ecx, dword [esi + 8]
mov edi, edx
call fcn.0046dac0
add esp, 4
test eax, eax
je 0x46f1e7
mov ecx, dword [eax]
cmp ecx, 7
mov dword [ebx], ecx
mov edx, dword [eax + 8]
mov dword [ebx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
jne case.0x46ea81.47
mov dword [ebx], 0xa
jmp case.0x46ea81.47
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 8]
mov ebx, dword [esi + 8]
push ecx
mov dword [0x5f023c], 0x80000000
call fcn.0046c770
add esp, 4
cmp dword [eax], 0
je 0x46f238
mov edx, dword [0x5f023c]
test edx, edx
jns 0x46f222
mov ecx, dword [esp + 0x1c]
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edx
mov edx, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x46f289
push 0
push edi
mov edi, dword [ebp + 8]
push esi
lea eax, [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x2c], 0
call fcn.0046d740
mov ecx, dword [0x5f023c]
add esp, 0xc
test ecx, ecx
jns 0x46f26e
mov edx, dword [esp + 0x1c]
mov dword [edx], ecx
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xc]
add ecx, dword [esp + 0x30]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0xc]
cmp dword [ecx], 7
jne case.0x46ea81.47
mov dword [ecx], 0xa
jmp case.0x46ea81.47
lea edx, [esp + 0x20]
push edx
push 0
push ecx
push esi
jmp 0x46ef41
mov eax, dword [esp + 0x10]
mov esi, edi
shr esi, 0xf
and esi, 0x1ff
shr edi, 6
shl esi, 4
and edi, 0x1ff
add esi, eax
cmp edi, 0xfa
jge 0x46f2d7
shl edi, 4
add edi, eax
jmp 0x46f2e4
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
cmp dword [edi], 5
jne 0x4708bd
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 8]
mov dword [ecx + 0x18], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x1c], eax
cmp dword [esi], 6
jne 0x46f380
mov ecx, dword [edi + 8]
mov ebx, dword [esi + 8]
push ecx
call fcn.0046c770
mov ecx, dword [eax]
add esp, 4
test ecx, ecx
je 0x46f334
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
jmp 0x46f36c
push 0
push edi
push esi
mov esi, dword [ebp + 8]
lea eax, [esp + 0x2c]
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0046d740
mov ecx, dword [esi + 0xc]
mov edx, dword [eax]
add esp, 0xc
add ecx, dword [esp + 0x30]
mov dword [ecx], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0xc]
mov dword [ecx + 0xc], eax
cmp dword [edx], 7
jne case.0x46ea81.47
mov dword [edx], 0xa
jmp case.0x46ea81.47
lea ecx, [esp + 0x20]
push ecx
push 0
push edi
push esi
jmp 0x46ef41
mov eax, dword [esp + 0x10]
mov ecx, edi
shr ecx, 0xf
and ecx, 0x1ff
shr edi, 6
shl ecx, 4
and edi, 0x1ff
add ecx, eax
cmp edi, 0xfa
jge 0x46f3ba
shl edi, 4
add edi, eax
jmp 0x46f3c7
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
sar edx, 2
cmp dword [edi], 5
lea eax, [eax + edx*8 - 8]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov dword [esp + 0x20], edi
jne 0x4708bd
test eax, eax
mov edx, dword [ecx]
mov esi, dword [esp + 0xc]
mov dword [esi + 0x10], edx
mov edx, dword [ecx + 8]
mov dword [esi + 0x18], edx
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0x1c], ecx
jns 0x46f463
mov edx, dword [esp + 0x1c]
mov edi, dword [edx + 4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [edx + 8]
call fcn.0046dac0
add esp, 4
test eax, eax
je 0x46f463
mov ecx, dword [eax]
cmp ecx, 7
mov dword [esi], ecx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
jne case.0x46ea81.47
mov eax, edx
cmp byte [eax + 6], 0
jne case.0x46ea81.47
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0x44], 0
je case.0x46ea81.47
mov dword [esi], 0xa
jmp case.0x46ea81.47
mov edi, dword [esp + 0x20]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 8]
push edx
mov dword [0x5f023c], 0x80000000
call fcn.0046c770
add esp, 4
cmp eax, 0x563ef0
je 0x46f4ad
mov edx, dword [0x5f023c]
test edx, edx
jns 0x46f426
mov ecx, dword [esp + 0x1c]
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edx
jmp 0x46f426
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
push 0
push edi
push ebx
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0
call fcn.0046d740
add esp, 0xc
cmp eax, 0x563ef0
jne 0x46f4fb
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x18]
push edx
call fcn.0046c770
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov eax, dword [eax + 0xc]
add esp, 4
mov dword [esi + 0xc], eax
jmp case.0x46ea81.47
mov edx, dword [0x5f023c]
test edx, edx
jns 0x46f426
mov ecx, dword [esp + 0x1c]
mov dword [ecx], edx
mov edx, dword [ebx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edx
jmp 0x46f426
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46f537
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x46f543
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46f55f
shl edi, 4
add edi, dword [esp + 0x10]
mov ecx, edi
jmp 0x46f56c
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
mov edx, dword [eax]
cmp edx, 3
jne 0x46f58f
cmp dword [ecx], edx
jne 0x46f58f
mov edx, dword [esp + 0xc]
mov dword [edx], 3
fld qword [ecx + 8]
fadd qword [eax + 8]
fstp qword [edx + 8]
jmp case.0x46ea81.47
cmp edx, 4
jne 0x46f5b0
cmp dword [ecx], edx
jne 0x46f5b0
mov edx, dword [esp + 0xc]
mov dword [edx], 4
mov ecx, dword [ecx + 8]
add ecx, dword [eax + 8]
mov dword [edx + 8], ecx
jmp case.0x46ea81.47
push 5
mov edx, dword [ebp + 8]
push ecx
push eax
mov eax, dword [esp + 0x18]
push edx
call fcn.0046e860
add esp, 0x10
jmp case.0x46ea81.47
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46f5e3
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x46f5ef
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46f60b
shl edi, 4
add edi, dword [esp + 0x10]
mov ecx, edi
jmp 0x46f618
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
mov edx, dword [eax]
cmp edx, 3
jne 0x46f63b
cmp dword [ecx], edx
jne 0x46f63b
mov edx, dword [esp + 0xc]
mov dword [edx], 3
fld qword [eax + 8]
fsub qword [ecx + 8]
fstp qword [edx + 8]
jmp case.0x46ea81.47
cmp edx, 4
jne 0x46f65c
cmp dword [ecx], edx
jne 0x46f65c
mov edx, dword [esp + 0xc]
mov dword [edx], 4
mov eax, dword [eax + 8]
sub eax, dword [ecx + 8]
mov dword [edx + 8], eax
jmp case.0x46ea81.47
push 6
push ecx
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x18]
push ecx
call fcn.0046e860
add esp, 0x10
jmp case.0x46ea81.47
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46f691
shl eax, 4
add eax, dword [esp + 0x10]
mov ebx, eax
jmp 0x46f69e
lea ebx, [eax - 0xfa]
shl ebx, 4
add ebx, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46f6b8
shl edi, 4
add edi, dword [esp + 0x10]
jmp 0x46f6c5
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
mov eax, dword [ebx]
cmp eax, 3
jne 0x46f6e8
cmp dword [edi], eax
jne 0x46f6e8
mov eax, dword [esp + 0xc]
mov dword [eax], 3
fld qword [edi + 8]
fmul qword [ebx + 8]
fstp qword [eax + 8]
jmp case.0x46ea81.47
cmp eax, 4
jne 0x46f70a
cmp dword [edi], eax
jne 0x46f70a
mov eax, dword [esp + 0xc]
mov dword [eax], 4
mov edx, dword [edi + 8]
imul edx, dword [ebx + 8]
mov dword [eax + 8], edx
jmp case.0x46ea81.47
cmp eax, 3
jne 0x46f715
mov dword [esp + 0x20], ebx
jmp 0x46f765
cmp eax, 4
jne 0x46f727
fild dword [ebx + 8]
lea eax, [esp + 0x38]
mov dword [esp + 0x20], eax
jmp 0x46f759
cmp eax, 5
jne 0x46f7c8
mov esi, dword [ebx + 8]
lea ecx, [esp + 0xc0]
push ecx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x46f7c8
fld qword [esp + 0xc0]
lea edx, [esp + 0x38]
mov dword [esp + 0x20], edx
fstp qword [esp + 0x40]
mov dword [esp + 0x38], 3
mov eax, dword [edi]
cmp eax, 3
je 0x46f7ac
cmp eax, 4
jne 0x46f776
fild dword [edi + 8]
jmp 0x46f79c
cmp eax, 5
jne 0x46f7c8
mov esi, dword [edi + 8]
lea eax, [esp + 0xb0]
push eax
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x46f7c8
fld qword [esp + 0xb0]
fstp qword [esp + 0x60]
lea edi, [esp + 0x58]
mov dword [esp + 0x58], 3
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [eax], 3
fld qword [edi + 8]
fmul qword [ecx + 8]
fstp qword [eax + 8]
jmp case.0x46ea81.47
mov edx, dword [esp + 0xc]
mov eax, dword [ebp + 8]
push 7
push edx
push edi
push ebx
push eax
call fcn.0046e1e0
add esp, 0x14
test eax, eax
jne case.0x46ea81.47
mov eax, dword [ebx]
cmp eax, 3
je 0x46f80f
cmp eax, 4
je 0x46f80f
cmp eax, 5
jne 0x46f80d
mov esi, dword [ebx + 8]
lea ecx, [esp + 0x20]
push ecx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
jne 0x46f80f
mov edi, ebx
mov eax, edi
mov edi, dword [ebp + 8]
push str.perform_arithmetic_on
call fcn.00455d40
add esp, 4
jmp case.0x46ea81.47
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46f842
shl eax, 4
add eax, dword [esp + 0x10]
mov ebx, eax
jmp 0x46f84f
lea ebx, [eax - 0xfa]
shl ebx, 4
add ebx, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46f869
shl edi, 4
add edi, dword [esp + 0x10]
jmp 0x46f876
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
mov eax, dword [ebx]
cmp eax, 3
jne 0x46f899
cmp dword [edi], eax
jne 0x46f899
mov eax, dword [esp + 0xc]
mov dword [eax], 3
fld qword [ebx + 8]
fdiv qword [edi + 8]
fstp qword [eax + 8]
jmp case.0x46ea81.47
cmp eax, 4
jne 0x46f8d2
cmp dword [edi], eax
jne 0x46f8d2
cmp dword [edi + 8], 0
jne 0x46f8b9
mov edx, dword [ebp + 8]
push str.attempt_to_divide_by_zero
push edx
call fcn.00455f40
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [ecx], 4
mov eax, dword [ebx + 8]
cdq
idiv dword [edi + 8]
mov dword [ecx + 8], eax
jmp case.0x46ea81.47
cmp eax, 3
jne 0x46f8dd
mov dword [esp + 0x20], ebx
jmp 0x46f931
cmp eax, 4
jne 0x46f8ef
fild dword [ebx + 8]
lea eax, [esp + 0x48]
mov dword [esp + 0x20], eax
jmp 0x46f925
cmp eax, 5
jne 0x46f997
mov esi, dword [ebx + 8]
lea ecx, [esp + 0xc8]
push ecx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x46f997
fld qword [esp + 0xc8]
lea edx, [esp + 0x48]
mov dword [esp + 0x20], edx
fstp qword [esp + 0x50]
mov dword [esp + 0x48], 3
mov eax, dword [edi]
cmp eax, 3
je 0x46f97b
cmp eax, 4
jne 0x46f942
fild dword [edi + 8]
jmp 0x46f968
cmp eax, 5
jne 0x46f997
mov esi, dword [edi + 8]
lea eax, [esp + 0x98]
push eax
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x46f997
fld qword [esp + 0x98]
fstp qword [esp + 0x80]
lea edi, [esp + 0x78]
mov dword [esp + 0x78], 3
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [eax], 3
fld qword [ecx + 8]
fdiv qword [edi + 8]
fstp qword [eax + 8]
jmp case.0x46ea81.47
mov edx, dword [esp + 0xc]
mov eax, dword [ebp + 8]
push 8
push edx
push edi
push ebx
push eax
call fcn.0046e1e0
add esp, 0x14
test eax, eax
jne case.0x46ea81.47
mov eax, dword [ebx]
cmp eax, 3
je 0x46f9de
cmp eax, 4
je 0x46f9de
cmp eax, 5
jne 0x46f9dc
mov esi, dword [ebx + 8]
lea ecx, [esp + 0x20]
push ecx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
jne 0x46f9de
mov edi, ebx
mov eax, edi
mov edi, dword [ebp + 8]
push str.perform_arithmetic_on
call fcn.00455d40
add esp, 4
jmp case.0x46ea81.47
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46fa0f
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x46fa1b
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46fa37
shl edi, 4
add edi, dword [esp + 0x10]
mov ecx, edi
jmp 0x46fa44
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
cmp dword [eax], 4
jne 0x46fa70
cmp dword [ecx], 4
jne 0x46fa70
mov esi, dword [esp + 0xc]
mov dword [esi], 4
fild dword [eax + 8]
fild dword [ecx + 8]
call fcn.00513650
call fcn.0050e730
mov dword [esi + 8], eax
jmp case.0x46ea81.47
push 9
jmp 0x46f5b2
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46fa93
shl eax, 4
add eax, dword [esp + 0x10]
mov esi, eax
jmp 0x46faa0
lea esi, [eax - 0xfa]
shl esi, 4
add esi, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46faba
shl edi, 4
add edi, dword [esp + 0x10]
jmp 0x46fac7
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
cmp dword [esi], 4
jne 0x46fb01
cmp dword [edi], 4
jne 0x46fb01
cmp dword [edi + 8], 0
jne 0x46fae8
mov eax, dword [ebp + 8]
push str.attempt_to_mod_by_zero
push eax
call fcn.00455f40
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [ecx], 4
mov eax, dword [esi + 8]
cdq
idiv dword [edi + 8]
mov dword [ecx + 8], edx
jmp case.0x46ea81.47
mov ecx, dword [ebp + 8]
push str.attempt_to_perform_modulo_on_non_integers
push ecx
call fcn.00455f40
add esp, 8
jmp case.0x46ea81.47
mov edx, dword [esp + 0x10]
shr edi, 0xf
and edi, 0x1ff
shl edi, 4
mov eax, dword [edi + edx]
cmp eax, 4
lea ebx, [edi + edx]
jne 0x46fb49
mov eax, dword [esp + 0xc]
mov dword [eax], 4
mov ecx, dword [ebx + 8]
neg ecx
mov dword [eax + 8], ecx
jmp case.0x46ea81.47
cmp eax, 3
je 0x46fb84
cmp eax, 5
jne 0x46fb9b
mov esi, dword [ebx + 8]
lea edx, [esp + 0xa0]
push edx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x46fb9b
fld qword [esp + 0xa0]
mov dword [esp + 0x68], 3
fstp qword [esp + 0x70]
lea ebx, [esp + 0x68]
mov eax, dword [esp + 0xc]
mov dword [eax], 3
fld qword [ebx + 8]
fchs
fstp qword [eax + 8]
jmp case.0x46ea81.47
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 8]
push 0xb
push eax
lea ecx, [esp + 0x70]
push ecx
push ebx
push edx
mov dword [esp + 0x7c], 0
call fcn.0046e1e0
add esp, 0x14
test eax, eax
jne case.0x46ea81.47
lea edi, [esp + 0xe8]
mov eax, ebx
lea esi, [esp + 0x68]
call fcn.0046d310
test eax, eax
jne 0x46fbdc
mov esi, ebx
mov edi, dword [ebp + 8]
push str.perform_arithmetic_on
mov eax, esi
call fcn.00455d40
add esp, 4
jmp case.0x46ea81.47
mov eax, dword [esp + 0x10]
shr edi, 0xf
and edi, 0x1ff
shl edi, 4
lea ebx, [edi + eax]
mov eax, dword [ebx]
cmp eax, 4
jne 0x46fc22
mov eax, dword [esp + 0xc]
mov dword [eax], 4
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
jmp case.0x46ea81.47
cmp eax, 3
je 0x46fc66
cmp eax, 5
jne 0x46fc80
mov esi, dword [ebx + 8]
lea edx, [esp + 0xa8]
push edx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x46fc80
fld qword [esp + 0xa8]
mov dword [esp + 0x88], 3
fstp qword [esp + 0x90]
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0xc]
mov dword [esi], 4
fld qword [ebx + 8]
call fcn.0050e730
mov dword [esi + 8], eax
jmp case.0x46ea81.47
lea edi, [esp + 0xf8]
mov eax, ebx
mov dword [esp + 0x88], 0
lea esi, [esp + 0x88]
call fcn.0046d310
test eax, eax
jne 0x46fca6
mov esi, ebx
mov edi, dword [ebp + 8]
push str.perform_arithmetic_on
mov eax, esi
call fcn.00455d40
add esp, 4
jmp case.0x46ea81.47
mov eax, dword [esp + 0x10]
shr edi, 0xf
and edi, 0x1ff
shl edi, 4
add edi, eax
mov eax, dword [edi]
test eax, eax
je 0x46fcf4
cmp eax, 1
jne 0x46fce0
cmp dword [edi + 8], 0
je 0x46fcf4
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [ecx], 1
mov dword [ecx + 8], eax
jmp case.0x46ea81.47
mov ecx, dword [esp + 0xc]
mov eax, 1
mov dword [ecx], eax
mov dword [ecx + 8], eax
jmp case.0x46ea81.47
shr edi, 0xf
and edi, 0x1ff
shl edi, 4
add edi, dword [esp + 0x10]
cmp dword [edi], 6
jne 0x46fd34
mov esi, eax
mov dword [esi], 4
mov eax, dword [edi + 8]
call fcn.0046cca0
mov dword [esi + 8], eax
jmp case.0x46ea81.47
mov esi, dword [ebp + 8]
push 0xc
mov ecx, eax
push ecx
push 0x563ef0
push edi
push esi
call fcn.0046e1e0
add esp, 0x14
test eax, eax
jne case.0x46ea81.47
mov eax, edi
push str.get_size_of
mov edi, esi
call fcn.00455d40
add esp, 4
jmp case.0x46ea81.47
mov esi, edi
shr edi, 6
and edi, 0x1ff
push edi
shr esi, 0xf
and esi, 0x1ff
sub edi, esi
add edi, 1
push edi
mov edi, dword [ebp + 8]
push edi
call fcn.0046e650
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0x3c]
add esp, 0xc
cmp edx, dword [eax + 0x38]
jb 0x46fda2
mov ebx, edi
call fcn.00463310
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x30]
shl esi, 4
mov edx, dword [esi + eax]
add esi, eax
mov dword [ecx + eax], edx
mov edx, dword [esi + 8]
mov dword [ecx + eax + 8], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + eax + 0xc], edx
mov edi, dword [edi + 0x10]
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x38]
jb case.0x46ea81.47
mov ebx, dword [ebp + 8]
call fcn.00463310
jmp case.0x46ea81.47
shr edi, 6
and edi, 0x3ffff
lea ecx, [edx + edi*4 - 0x7fffc]
mov dword [esp + 0x18], ecx
jmp case.0x46ea81.47
mov esi, dword [esp + 0x10]
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46fe15
mov edx, eax
shl edx, 4
add edx, esi
jmp 0x46fe22
lea edx, [eax - 0xfa]
shl edx, 4
add edx, dword [esp + 0x14]
shr edi, 6
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46fe3c
mov ecx, edi
shl ecx, 4
add ecx, esi
jmp 0x46fe49
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
mov edx, dword [edx]
cmp edx, dword [ecx]
je 0x46fedd
cmp eax, 0xfa
jge 0x46fe63
mov ecx, eax
shl ecx, 4
add ecx, esi
jmp 0x46fe70
lea ecx, [eax - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
cmp dword [ecx], 3
jne 0x46fe98
cmp edi, 0xfa
jge 0x46fe86
mov ecx, edi
shl ecx, 4
add ecx, esi
jmp 0x46fe93
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
cmp dword [ecx], 4
je 0x46fedd
cmp eax, 0xfa
jge 0x46fea8
mov ecx, eax
shl ecx, 4
add ecx, esi
jmp 0x46feb5
lea ecx, [eax - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
cmp dword [ecx], 4
jne 0x46ff2e
cmp edi, 0xfa
jge 0x46fecb
mov ecx, edi
shl ecx, 4
add ecx, esi
jmp 0x46fed8
lea ecx, [edi - 0xfa]
shl ecx, 4
add ecx, dword [esp + 0x14]
cmp dword [ecx], 3
jne 0x46ff2e
cmp edi, 0xfa
jge 0x46feec
shl edi, 4
add edi, esi
jmp 0x46fef9
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
cmp eax, 0xfa
jge 0x46ff07
shl eax, 4
add eax, esi
jmp 0x46ff13
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
push ecx
mov ebx, edi
mov esi, eax
call fcn.0046e540
add esp, 4
test eax, eax
je 0x46ff2e
mov eax, 1
jmp 0x46ff30
xor eax, eax
cmp eax, dword [esp + 0x20]
je 0x46ff40
add dword [esp + 0x18], 4
jmp case.0x46ea81.47
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
shr edx, 6
and edx, 0x3ffff
lea eax, [eax + edx*4 - 0x7fff8]
mov dword [esp + 0x18], eax
jmp case.0x46ea81.47
mov eax, edi
shr eax, 6
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46ff79
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x46ff85
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 0xf
and edi, 0x1ff
cmp edi, 0xfa
jge 0x46ffa1
shl edi, 4
add edi, dword [esp + 0x10]
mov esi, edi
jmp 0x46ffae
lea esi, [edi - 0xfa]
shl esi, 4
add esi, dword [esp + 0x14]
mov edi, dword [ebp + 8]
call fcn.0046e3d0
cmp eax, dword [esp + 0x20]
je 0x47008d
add dword [esp + 0x18], 4
jmp case.0x46ea81.47
mov eax, edi
shr eax, 6
and eax, 0x1ff
cmp eax, 0xfa
jge 0x46ffe4
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x46fff0
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 0xf
and edi, 0x1ff
cmp edi, 0xfa
jge 0x47000a
shl edi, 4
add edi, dword [esp + 0x10]
jmp 0x470017
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
push ecx
mov esi, eax
call fcn.0046e470
add esp, 4
cmp eax, dword [esp + 0x20]
je 0x46ff40
add dword [esp + 0x18], 4
jmp case.0x46ea81.47
mov eax, edi
shr eax, 0xf
and eax, 0x1ff
shl eax, 4
add eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x47005f
cmp ecx, 1
jne 0x47005b
cmp dword [eax + 8], 0
je 0x47005f
xor edx, edx
jmp 0x470064
mov edx, 1
shr edi, 6
and edi, 0x1ff
cmp edx, edi
jne 0x47007b
add dword [esp + 0x18], 4
jmp case.0x46ea81.47
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
shr ecx, 6
and ecx, 0x3ffff
lea edx, [eax + ecx*4 - 0x7fff8]
mov dword [esp + 0x18], edx
jmp case.0x46ea81.47
mov esi, dword [ebp + 8]
mov edx, edi
shr edx, 0xf
and edx, 0x1ff
je 0x4700c4
shl edx, 4
add edx, eax
mov dword [esi + 8], edx
mov ebx, edi
shr ebx, 6
and ebx, 0x1ff
sub ebx, 1
cmp dword [eax], 0xa
jne 0x4700df
mov dword [eax], 7
jmp 0x47011d
cmp ecx, 0x2c
je 0x4700e9
cmp ecx, 0x2d
jne 0x47011d
add dword [esi + 8], 0xfffffff0
lea ecx, [eax + 0x10]
cmp ecx, dword [esi + 8]
jae 0x47011d
lea edx, [ecx + 0x10]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
add ecx, 0x10
add edx, 0x10
cmp ecx, dword [esi + 8]
jb 0x4700f8
mov eax, dword [esp + 0xc]
mov ecx, esi
call fcn.00450b00
test eax, eax
je 0x4707e7
cmp eax, dword [esi + 8]
ja 0x4708a9
mov ecx, ebx
mov edi, esi
call fcn.00450c70
test ebx, ebx
jl case.0x46ea81.47
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + 4]
mov dword [esi + 8], edx
jmp case.0x46ea81.47
mov esi, eax
mov eax, dword [esi]
mov ecx, 4
cmp eax, ecx
jne 0x4701b2
cmp dword [esi + 0x10], ecx
jne 0x4701b2
cmp dword [esi + 0x20], ecx
jne 0x4701b2
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0x18]
add eax, ecx
test ecx, ecx
jle 0x470183
xor ecx, ecx
cmp eax, esi
setle cl
jmp 0x47018a
xor ecx, ecx
cmp eax, esi
setge cl
test ecx, ecx
je case.0x46ea81.47
shr edi, 6
and edi, 0x3ffff
lea ecx, [edx + edi*4 - 0x7fffc]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
mov dword [edx + 8], eax
jmp case.0x46ea81.47
cmp eax, ecx
lea edx, [esi + 0x10]
mov dword [esp + 0x1c], edx
lea ebx, [esi + 0x20]
jne 0x4701ce
fild dword [esi + 8]
mov dword [esi], 3
fstp qword [esi + 8]
jmp 0x4701e4
cmp eax, 3
je 0x4701e4
mov eax, dword [ebp + 8]
push str._for_initial_value_must_be_a_number
push eax
call fcn.00455f40
add esp, 8
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
cmp eax, 3
je 0x470260
cmp eax, 4
jne 0x470206
mov dword [ecx], 3
fild dword [ecx + 8]
mov dword [esp + 0x1c], ecx
fstp qword [ecx + 8]
jmp 0x470260
cmp eax, 5
jne 0x470243
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 8]
lea ecx, [esp + 0xb8]
push ecx
add esi, 0x18
call fcn.00449b20
add esp, 4
test eax, eax
je 0x470243
mov eax, dword [esp + 0x1c]
fld qword [esp + 0xb8]
fstp qword [eax + 8]
mov dword [eax], 3
mov dword [esp + 0x1c], eax
jmp 0x47025c
mov eax, dword [ebp + 8]
push str._for_limit_must_be_a_number
push eax
mov dword [esp + 0x24], 0
call fcn.00455f40
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [ebx]
cmp eax, 3
je 0x4702c2
cmp eax, 4
jne 0x47027a
mov dword [ebx], 3
fild dword [ebx + 8]
fstp qword [ebx + 8]
jmp 0x4702c2
cmp eax, 5
jne 0x4702af
mov esi, dword [ebx + 8]
lea ecx, [esp + 0xd0]
push ecx
add esi, 0x18
call fcn.00449b20
mov esi, dword [esp + 0x10]
add esp, 4
test eax, eax
je 0x4702af
fld qword [esp + 0xd0]
mov dword [ebx], 3
fstp qword [ebx + 8]
jmp 0x4702c2
mov edx, dword [ebp + 8]
push str._for_step_must_be_a_number
push edx
xor ebx, ebx
call fcn.00455f40
add esp, 8
fld qword [ebx + 8]
mov eax, dword [esp + 0x1c]
fld st(0)
fadd qword [esi + 8]
fld qword [eax + 8]
fldz
fcomp st(3)
fnstsw ax
fstp st(2)
fcom st(1)
test ah, 5
fnstsw ax
fstp st(1)
jp 0x4702ee
test ah, 0x41
jnp 0x4702f7
jmp 0x46ea47
test ah, 1
jne 0x46ea47
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
shr edi, 6
and edi, 0x3ffff
lea edx, [ecx + edi*4 - 0x7fffc]
mov dword [esp + 0x18], edx
fstp qword [eax + 8]
jmp case.0x46ea81.47
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
shr edi, 6
mov ebx, dword [ebp + 8]
and edi, 0x1ff
add edi, 1
lea eax, [edi + 2]
shl eax, 4
mov dword [eax + ecx], edx
mov edx, dword [ecx + 8]
add eax, ecx
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x18], edx
mov edx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], edx
mov edx, dword [ecx + 0x20]
mov dword [eax + 0x20], edx
mov edx, dword [ecx + 0x28]
mov dword [eax + 0x28], edx
mov ecx, dword [ecx + 0x2c]
push edi
push eax
lea edx, [eax + 0x30]
mov dword [eax + 0x2c], ecx
push ebx
mov dword [ebx + 8], edx
call fcn.00450d00
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 4]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x2c]
add ecx, 2
shl ecx, 4
add ecx, dword [ebx + 0xc]
mov eax, edi
shl eax, 4
lea edx, [eax + ecx]
lea esi, [edx + eax]
add esp, 0xc
lea eax, [edx + 8]
sub edx, ecx
mov ebx, dword [esi - 0x10]
sub eax, 0x10
sub esi, 0x10
mov dword [eax - 8], ebx
mov ebx, dword [edx + eax]
sub edi, 1
test edi, edi
mov dword [eax], ebx
mov ebx, dword [edx + eax + 4]
mov dword [eax + 4], ebx
jg 0x4703a2
cmp dword [ecx], 0
jne 0x46ff40
add dword [esp + 0x18], 4
jmp case.0x46ea81.47
mov esi, eax
cmp dword [esi], 6
jne 0x47041d
mov ebx, dword [ebp + 8]
mov dword [esi + 0x10], 6
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
mov edx, dword [esi + 0xc]
push str.next
push ebx
mov eax, 4
mov dword [esi + 0x1c], edx
call fcn.0046d180
mov ebx, dword [ebx + 0x48]
push eax
call fcn.0046c770
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov eax, dword [eax + 0xc]
add esp, 0xc
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x18]
shr edi, 6
and edi, 0x3ffff
lea edx, [ecx + edi*4 - 0x7fffc]
mov dword [esp + 0x18], edx
jmp case.0x46ea81.47
cmp dword [eax], 6
jne 0x4708bd
mov esi, dword [eax + 8]
shr edi, 6
and edi, 0x3ffff
cmp ecx, 0x21
jne 0x47045e
mov ebx, edi
and ebx, 0x1f
add ebx, 1
jmp 0x470475
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 8]
sub ebx, eax
mov eax, dword [ecx + 0x14]
mov edx, dword [eax + 4]
sar ebx, 4
sub ebx, 1
mov dword [ecx + 8], edx
and edi, 0xffffffe0
test ebx, ebx
jle case.0x46ea81.47
lea eax, [ebx + edi]
lea ecx, [eax - 1]
shl eax, 4
mov edi, ebx
sub eax, 0x10
shl edi, 4
add edi, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
lea ecx, [ecx]
test ecx, ecx
jl 0x4704b2
cmp ecx, dword [esi + 0x20]
jge 0x4704b2
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
jmp 0x4704f8
mov cl, byte [esi + 8]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x1c]
xor edx, edx
sub eax, 1
or eax, 1
mov dword [esp + 0x30], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x30]
div ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x1c]
lea edx, [edx + edx*4]
lea eax, [eax + edx*8]
cmp dword [eax], 4
jne 0x4704ec
cmp dword [eax + 8], ecx
je 0x4704f5
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x4704e2
jmp 0x4704ff
add eax, 0x10
cmp eax, 0x563ef0
jne 0x47052c
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push 0
lea edx, [esp + 0xdc]
push edx
push esi
push eax
mov dword [esp + 0xe8], 4
mov dword [esp + 0xf0], ecx
call fcn.0046c580
add esp, 0x10
mov ecx, dword [edi]
mov dword [eax], ecx
mov edx, dword [edi + 8]
mov dword [eax + 8], edx
mov ecx, dword [edi + 0xc]
mov dword [eax + 0xc], ecx
cmp dword [edi], 5
jl 0x470565
mov edx, dword [edi + 8]
test byte [edx + 5], 3
je 0x470565
mov al, byte [esi + 5]
test al, 4
je 0x470565
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x10]
and al, 0xfb
mov byte [esi + 5], al
mov edx, dword [ecx + 0x24]
mov dword [esi + 0x1c], edx
mov dword [ecx + 0x24], esi
mov ecx, dword [esp + 0x1c]
sub dword [esp + 0x20], 0x10
sub ebx, 1
sub ecx, 1
sub edi, 0x10
test ebx, ebx
mov dword [esp + 0x1c], ecx
jg 0x4704a0
jmp case.0x46ea81.47
mov edi, dword [ebp + 8]
push eax
call fcn.00471350
add esp, 4
jmp case.0x46ea81.47
push 3
mov edx, dword [ebp + 8]
shr edi, 6
and edi, 0x3ffff
mov ecx, eax
mov eax, dword [esp + 0x30]
shl edi, 4
add edi, dword [esp + 0x18]
push ecx
push edi
add eax, 0x10
push edx
call fcn.0046e060
add esp, 0x10
jmp case.0x46ea81.47
mov eax, edi
shr eax, 6
and eax, 0x1ff
cmp eax, 0xfa
jge 0x4705e1
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x4705ed
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 0xf
and edi, 0x1ff
cmp edi, 0xfa
jge 0x470607
shl edi, 4
add edi, dword [esp + 0x10]
jmp 0x470614
add edi, 0xffffff06
shl edi, 4
add edi, dword [esp + 0x14]
push 3
push eax
mov eax, dword [ebp + 8]
push edi
push eax
mov eax, dword [esp + 0x1c]
call fcn.0046e060
add esp, 0x10
jmp case.0x46ea81.47
push 1
jmp 0x47059b
mov eax, edi
shr eax, 6
and eax, 0x1ff
cmp eax, 0xfa
jge 0x47064e
shl eax, 4
add eax, dword [esp + 0x10]
jmp 0x47065a
add eax, 0xffffff06
shl eax, 4
add eax, dword [esp + 0x14]
shr edi, 0xf
and edi, 0x1ff
cmp edi, 0xfa
jge 0x47068b
push 1
push eax
mov eax, dword [ebp + 8]
shl edi, 4
add edi, dword [esp + 0x18]
push edi
push eax
mov eax, dword [esp + 0x1c]
call fcn.0046e060
add esp, 0x10
jmp case.0x46ea81.47
add edi, 0xffffff06
push 1
push eax
mov eax, dword [ebp + 8]
shl edi, 4
add edi, dword [esp + 0x1c]
push edi
push eax
mov eax, dword [esp + 0x1c]
call fcn.0046e060
add esp, 0x10
jmp case.0x46ea81.47
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ebp + 8]
shr edi, 6
and edi, 0x3ffff
mov edi, dword [edx + edi*4]
movzx esi, byte [edi + 0x4c]
mov dword [esp + 0x20], edi
lea edi, [eax + 0x10]
push esi
call fcn.004711b0
mov ecx, eax
mov eax, dword [esp + 0x24]
add esp, 4
test esi, esi
mov dword [esp + 0x1c], ecx
mov dword [ecx + 0xc], eax
jle 0x470737
lea edi, [ecx + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov edx, eax
shr eax, 0xf
and dl, 0x3f
and eax, 0x1ff
cmp dl, 4
jne 0x470714
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + eax*4 + 0x20]
jmp 0x470728
shl eax, 4
add eax, dword [esp + 0x10]
push ebx
call fcn.00471250
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [edi], eax
add dword [esp + 0x18], 4
add edi, 4
sub esi, 1
jne 0x4706f2
mov eax, dword [esp + 0xc]
mov dword [eax], 7
mov dword [eax + 8], ecx
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x3c]
cmp ecx, dword [eax + 0x38]
jb case.0x46ea81.47
call fcn.00463310
jmp case.0x46ea81.47
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0x14]
shr edi, 0xf
sub esi, 0x1c
and edi, 0x1ff
je 0x47077d
shl edi, 4
mov edx, eax
lea eax, [edi + edx - 0x10]
mov dword [ebx + 8], eax
cmp dword [ebx + 0x50], 0
je 0x470792
mov ecx, dword [esp + 0x10]
push ecx
mov edi, ebx
call fcn.00471350
add esp, 4
mov edx, dword [ebx + 0x14]
mov dword [edx + 8], 8
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x10], ecx
test byte [esi + 8], 4
mov eax, dword [esp + 0xc]
je 0x4708bf
mov edx, dword [esi + 0x10]
mov esi, dword [edx - 4]
shr esi, 6
and esi, 0x1ff
sub esi, 1
mov ecx, esi
mov edi, ebx
call fcn.00450c70
test esi, esi
jl 0x46ea10
mov eax, ebx
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx + 4]
mov dword [eax + 8], edx
jmp 0x46ea10
mov eax, edi
and eax, 0x3f
cmp eax, 0x1b
je 0x470890
cmp eax, 0x2c
je 0x470890
mov eax, dword [esi + 0x14]
mov ebx, dword [eax - 0x1c]
shr edi, 0x18
shl edi, 4
add edi, ebx
cmp dword [esi + 0x50], 0
mov ecx, edi
mov dword [esp + 0xc], ecx
je 0x470827
push ebx
mov edi, esi
call fcn.00471350
mov ecx, dword [esp + 0x10]
add esp, 4
xor edx, edx
cmp ecx, dword [esi + 8]
jae 0x470857
xor eax, eax
mov edi, dword [ecx]
mov dword [eax + ebx - 0x10], edi
mov edi, dword [ecx + 8]
mov dword [eax + ebx - 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + ebx - 4], ecx
mov ecx, dword [esp + 0xc]
add edx, 1
mov eax, edx
shl eax, 4
add ecx, eax
cmp ecx, dword [esi + 8]
jb 0x470830
mov eax, dword [esi + 0x14]
shl edx, 4
add edx, ebx
mov dword [esi + 8], edx
mov dword [eax - 0x18], edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x10]
mov dword [eax - 0xc], ecx
mov eax, dword [esi + 0x14]
add dword [eax - 4], 1
mov edx, dword [esi + 0x14]
mov dword [edx - 0x14], 8
add dword [esi + 0x14], 0xffffffe4
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp 0x46ea10
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx - 0xc], edx
mov eax, dword [esi + 0x14]
mov dword [eax - 0x14], 0xc
jmp 0x46ea10
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx - 0xc], edx
mov eax, dword [esi + 0x14]
mov dword [eax - 0x14], 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret