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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb88
mov eax, dword [0x78e580]
xor eax, esp
mov dword [esp + 0xb84], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x184]
push eax
push edi
call fcn.0046f52d
add esp, 0xc
test eax, eax
js 0x46df99
lea eax, [esp + 0x108]
push eax
push esi
call fcn.0046f415
pop ecx
pop ecx
test eax, eax
jns 0x46b776
lea eax, [esp + 0x190]
cmp dword [esp + 0x184], eax
je 0x46b749
push dword [esp + 0x184]
call fcn.00441dce
pop ecx
lea eax, [esp + 0x110]
cmp dword [esp + 0x10c], eax
je 0x46b766
push dword [esp + 0x10c]
call fcn.00441dce
pop ecx
call fcn.004bb8cc
mov dword [eax], 0x16
jmp 0x46df99
mov eax, dword [esp + 0x188]
or esi, 0xffffffff
add eax, 7
mov edx, esi
cmp eax, 7
mov ecx, esi
cmovae edx, eax
mov eax, dword [esp + 0x18c]
add eax, edx
cmp eax, edx
mov edx, esi
cmovae ecx, eax
lea eax, [ecx + 6]
cmp eax, ecx
cmovae edx, eax
cmp edx, esi
je 0x46df54
push edx
call fcn.00441ddc
mov dword [esp + 0x2c], eax
pop ecx
test eax, eax
je 0x46df54
mov esi, dword [esp + 0x48]
test esi, esi
je 0x46b7d3
mov eax, dword [esp + 0xac]
mov ecx, dword [eax]
jmp 0x46b7d5
xor ecx, ecx
movsd xmm0, qword [0x549200]
xor edx, edx
and dword [esp + 0x88], edx
xorps xmm2, xmm2
and dword [esp + 0x8c], edx
test esi, esi
mov eax, dword [esp + 0x184]
cmove esi, dword [esp + 0x88]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x549210]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [0x52a1d0]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [0x549180]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [0x506180]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [0x549158]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x70], 1
mov dword [esp + 0x5c], 2
mov dword [esp + 0x74], 0x19
mov dword [esp + 0xb4], 0x61
mov dword [esp + 0x84], 0x6e
mov dword [esp + 0xa8], 0x69
movsd qword [esp + 0x78], xmm2
movsd qword [esp + 0xe0], xmm0
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
cmp edi, eax
je 0x46b962
sub eax, edi
mov dword [esp + 0x34], eax
add eax, edx
or edx, 0xffffffff
cmp eax, dword [esp + 0x24]
cmovae edx, eax
mov dword [esp + 0x60], edx
cmp edx, ecx
jbe 0x46b946
lea eax, [ecx + ecx]
or ecx, 0xffffffff
cmp dword [esp + 0x40], 0x7fffffff
push 0xc
cmovbe ecx, eax
cmp dword [esp + 0x44], 0
pop eax
cmova eax, ecx
cmp edx, eax
cmova eax, edx
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x46df39
cmp esi, dword [esp + 0x48]
je 0x46b914
test esi, esi
je 0x46b914
push eax
push esi
call fcn.00441e27
pop ecx
jmp 0x46b91a
push eax
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
jne 0x46b942
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46b942
push ecx
push eax
push esi
call fcn.004b8970
add esp, 0xc
mov dword [esp + 0x18], esi
push dword [esp + 0x34]
mov eax, dword [esp + 0x28]
add eax, esi
push edi
push eax
call fcn.004b8970
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x180]
je 0x46dfb8
mov edi, dword [esp + 0x1c]
mov cl, byte [edi + 0x24]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x20], ecx
cmp cl, 0x25
jne 0x46ba27
cmp eax, 0xffffffff
jne case.default.0x46c3b9
lea eax, [edx + 1]
or edi, 0xffffffff
cmp eax, edx
mov edx, dword [esp + 0x40]
cmovae edi, eax
cmp edi, edx
jbe 0x46ba18
or ecx, 0xffffffff
lea eax, [edx + edx]
cmp edx, 0x7fffffff
push 0xc
cmovbe ecx, eax
test edx, edx
pop eax
cmovne eax, ecx
cmp edi, eax
cmova eax, edi
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x46df39
cmp esi, dword [esp + 0x48]
je 0x46b9e6
test esi, esi
je 0x46b9e6
push eax
push esi
call fcn.00441e27
pop ecx
jmp 0x46b9ec
push eax
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
jne 0x46ba14
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46ba14
push ecx
push eax
push esi
call fcn.004b8970
add esp, 0xc
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x24]
mov byte [eax + esi], 0x25
mov edx, edi
jmp 0x46de14
cmp eax, 0xffffffff
je case.default.0x46c3b9
cmp cl, 0x6e
jne 0x46ba9e
mov edx, dword [esp + 0x10c]
add eax, eax
mov ecx, dword [edx + eax*8]
sub ecx, 0x12
je 0x46ba8f
sub ecx, 1
je 0x46ba7f
sub ecx, 1
je 0x46ba70
sub ecx, 1
je 0x46ba70
sub ecx, 1
jne case.default.0x46c3b9
mov eax, dword [edx + eax*8 + 8]
mov edx, dword [esp + 0x24]
mov dword [eax], edx
and dword [eax + 4], ecx
jmp 0x46de18
mov eax, dword [edx + eax*8 + 8]
mov edx, dword [esp + 0x24]
mov dword [eax], edx
jmp 0x46de18
mov eax, dword [edx + eax*8 + 8]
mov edx, dword [esp + 0x24]
mov word [eax], dx
jmp 0x46de18
mov eax, dword [edx + eax*8 + 8]
mov edx, dword [esp + 0x24]
mov byte [eax], dl
jmp 0x46de18
mov esi, dword [esp + 0x10c]
cmp cl, 0x73
jne 0x46c0c7
mov edi, eax
shl edi, 4
mov dword [esp + 0x60], edi
cmp dword [edi + esi], 0x10
jne 0x46c0c3
mov ecx, dword [esp + 0x1c]
and dword [esp + 0x38], 0
and dword [esp + 0x2c], 0
mov edx, dword [ecx + 0xc]
cmp edx, dword [ecx + 0x10]
je 0x46bb3c
mov eax, dword [ecx + 0x14]
cmp eax, 0xffffffff
je 0x46bafb
add eax, eax
cmp dword [esi + eax*8], 5
jne case.default.0x46c3b9
mov esi, dword [esi + eax*8 + 8]
mov dword [esp + 0x2c], esi
test esi, esi
jns 0x46bb34
neg esi
jmp 0x46bb30
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
imul eax, esi, 0xa
or ecx, 0xffffffff
cmp esi, 0x19999999
cmovbe ecx, eax
movsx eax, byte [edx]
add eax, 0xffffffd0
or esi, 0xffffffff
add eax, ecx
cmp eax, ecx
inc edx
cmovae esi, eax
cmp edx, dword [edi + 0x10]
jne 0x46bb03
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x70]
mov dword [esp + 0x38], eax
mov edx, dword [ecx + 0x18]
xor eax, eax
push 6
mov dword [esp + 0x34], eax
pop esi
cmp edx, dword [ecx + 0x1c]
je 0x46bbb9
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x46bb7c
mov edx, dword [esp + 0x10c]
add eax, eax
cmp dword [edx + eax*8], 5
jne case.default.0x46c3b9
mov eax, dword [edx + eax*8 + 8]
test eax, eax
cmovns esi, eax
not eax
shr eax, 0x1f
mov dword [esp + 0x30], eax
jmp 0x46bbc0
xor esi, esi
inc edx
cmp edx, dword [ecx + 0x1c]
je 0x46bbb1
mov edi, dword [esp + 0x1c]
imul eax, esi, 0xa
or ecx, 0xffffffff
cmp esi, 0x19999999
cmovbe ecx, eax
movsx eax, byte [edx]
add eax, 0xffffffd0
or esi, 0xffffffff
add eax, ecx
cmp eax, ecx
inc edx
cmovae esi, eax
cmp edx, dword [edi + 0x1c]
jne 0x46bb88
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x10c]
mov edi, dword [edi + edx + 8]
mov dword [esp + 0x44], edi
test eax, eax
je 0x46bc38
push 8
lea eax, [esp + 0xec]
push 0
push eax
call fcn.004b6f20
mov edx, edi
add esp, 0xc
xor edi, edi
test esi, esi
jmp 0x46bc29
movzx eax, word [edx]
test ax, ax
je 0x46bcbe
lea ecx, [esp + 0xe8]
push ecx
push eax
lea eax, [esp + 0x2d0]
push eax
call fcn.004cd93b
add esp, 0xc
test eax, eax
js 0x46de32
cmp esi, eax
jb 0x46bcbe
mov edx, dword [esp + 0x20]
add edi, eax
add edx, dword [esp + 0x5c]
sub esi, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x20], edx
jne 0x46bbe8
jmp 0x46bcbe
cmp dword [esp + 0x38], 0
je 0x46bcaa
push 8
lea eax, [esp + 0xf4]
push 0
push eax
call fcn.004b6f20
mov eax, dword [esp + 0x50]
add esp, 0xc
mov dword [esp + 0x20], edi
xor edi, edi
mov dword [esp + 0x3c], edi
movzx eax, word [eax]
test ax, ax
je 0x46bcbe
mov ecx, eax
lea eax, [esp + 0xf0]
push eax
push ecx
lea eax, [esp + 0x2d0]
push eax
call fcn.004cd93b
add esp, 0xc
test eax, eax
js 0x46de32
mov edx, dword [esp + 0x20]
add edi, eax
add edx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], edi
movzx eax, word [edx]
mov ecx, eax
test ax, ax
jne 0x46bc6b
jmp 0x46bcbe
push edi
call fcn.004bb0d4
pop ecx
lea eax, [edi + eax*2]
xor edi, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x38]
xor edx, edx
test eax, eax
mov ecx, edi
cmove ecx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
cmp ecx, edx
jae 0x46bda8
mov esi, dword [esp + 0x1c]
test byte [esi + 8], 2
jne 0x46bda8
mov esi, dword [esp + 0x40]
mov edi, edx
sub edi, ecx
or edx, 0xffffffff
mov ecx, dword [esp + 0x24]
lea eax, [edi + ecx]
cmp eax, ecx
mov dword [esp + 0x34], eax
cmovae edx, eax
cmp edx, esi
jbe 0x46bd83
or ecx, 0xffffffff
lea eax, [esi + esi]
cmp esi, 0x7fffffff
push 0xc
cmovbe ecx, eax
test esi, esi
pop eax
cmovne eax, ecx
mov ecx, eax
cmp edx, ecx
cmova ecx, edx
mov dword [esp + 0x40], ecx
cmp ecx, 0xffffffff
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
je 0x46bd4b
test eax, eax
je 0x46bd4b
push ecx
push eax
call fcn.00441e27
pop ecx
jmp 0x46bd51
push ecx
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, dword [esp + 0x48]
jne 0x46bd7d
test ecx, ecx
je 0x46bd7d
push ecx
push eax
push esi
call fcn.004b8970
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x18], esi
jmp 0x46bd87
mov esi, dword [esp + 0x18]
push edi
lea eax, [ecx + esi]
push 0x20
push eax
call fcn.004b6f20
mov eax, dword [esp + 0x40]
add esp, 0xc
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
jmp 0x46bdac
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x30], 0
jne 0x46bed9
test eax, eax
jne 0x46bed9
push 8
push eax
lea eax, [esp + 0x100]
push eax
call fcn.004b6f20
mov eax, dword [esp + 0x50]
add esp, 0xc
cmp eax, dword [esp + 0x20]
jae 0x46bff8
movzx eax, word [eax]
test ax, ax
je case.default.0x46c3b9
lea ecx, [esp + 0xf8]
push ecx
push eax
lea eax, [esp + 0x310]
push eax
call fcn.004cd93b
mov edi, eax
add esp, 0xc
test edi, edi
jle 0x46de9b
mov ecx, dword [esp + 0x24]
or edx, 0xffffffff
lea eax, [edi + ecx]
cmp eax, ecx
mov dword [esp + 0x34], eax
cmovae edx, eax
mov eax, dword [esp + 0x40]
cmp edx, eax
jbe 0x46bea1
add eax, eax
or ecx, 0xffffffff
cmp dword [esp + 0x40], 0x7fffffff
push 0xc
cmovbe ecx, eax
cmp dword [esp + 0x44], 0
pop eax
cmova eax, ecx
cmp edx, eax
cmova eax, edx
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x46df39
cmp esi, dword [esp + 0x48]
je 0x46be6b
test esi, esi
je 0x46be6b
push eax
push esi
call fcn.00441e27
pop ecx
jmp 0x46be71
push eax
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, dword [esp + 0x48]
jne 0x46be9d
test ecx, ecx
je 0x46be9d
push ecx
push eax
push esi
call fcn.004b8970
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x18], esi
push edi
lea eax, [esp + 0x30c]
push eax
lea eax, [ecx + esi]
push eax
call fcn.004b8970
mov eax, dword [esp + 0x50]
add esp, 0xc
add eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x20]
jb 0x46bde0
jmp 0x46bffc
push 8
lea eax, [esp + 0x104]
push 0
push eax
call fcn.004b6f20
mov ecx, dword [esp + 0x30]
or edx, 0xffffffff
add esp, 0xc
lea eax, [edi + ecx]
cmp eax, ecx
cmovae edx, eax
mov eax, dword [esp + 0x40]
cmp edx, eax
jbe 0x46bf77
add eax, eax
or ecx, 0xffffffff
cmp dword [esp + 0x40], 0x7fffffff
push 0xc
cmovbe ecx, eax
cmp dword [esp + 0x44], 0
pop eax
cmova eax, ecx
cmp edx, eax
cmova eax, edx
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x46df39
cmp esi, dword [esp + 0x48]
je 0x46bf45
test esi, esi
je 0x46bf45
push eax
push esi
call fcn.00441e27
pop ecx
jmp 0x46bf4b
push eax
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
jne 0x46bf73
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46bf73
push ecx
push eax
push esi
call fcn.004b8970
add esp, 0xc
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x44]
test edi, edi
je 0x46bff2
movzx eax, word [eax]
test ax, ax
je case.default.0x46c3b9
lea ecx, [esp + 0x100]
push ecx
push eax
lea eax, [esp + 0x2d0]
push eax
call fcn.004cd93b
mov esi, eax
add esp, 0xc
test esi, esi
jle case.default.0x46c3b9
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x2c8]
add ecx, dword [esp + 0x18]
push esi
push eax
push ecx
call fcn.004b8970
mov edx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [esp + 0x44]
add edx, esi
add eax, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], eax
sub edi, esi
jne 0x46bf7f
mov esi, dword [esp + 0x18]
cmp eax, dword [esp + 0x20]
jne case.default.0x46c3b9
jmp 0x46bffc
mov edx, dword [esp + 0x24]
jmp 0x46bfe6
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jae 0x46de18
mov edi, dword [esp + 0x1c]
test byte [edi + 8], 2
je 0x46de18
sub ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
lea edi, [ecx + edx]
or edx, 0xffffffff
cmp edi, dword [esp + 0x24]
cmovae edx, edi
cmp edx, eax
jbe 0x46c0ac
add eax, eax
or ecx, 0xffffffff
cmp dword [esp + 0x40], 0x7fffffff
push 0xc
cmovbe ecx, eax
cmp dword [esp + 0x44], 0
pop eax
cmova eax, ecx
cmp edx, eax
cmova eax, edx
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x46df39
cmp esi, dword [esp + 0x48]
je 0x46c076
test esi, esi
je 0x46c076
push eax
push esi
call fcn.00441e27
pop ecx
jmp 0x46c07c
push eax
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
jne 0x46c0a4
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46c0a4
push ecx
push eax
push esi
call fcn.004b8970
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x24]
push ecx
add eax, esi
push 0x20
push eax
call fcn.004b6f20
add esp, 0xc
jmp 0x46ba20
mov edi, dword [esp + 0x1c]
add eax, eax
cmp cl, 0x61
je 0x46d5e3
cmp cl, 0x41
je 0x46d5e3
push 0x66
pop eax
cmp cl, al
je 0x46c0fb
cmp cl, 0x46
je 0x46c0fb
cmp cl, 0x65
je 0x46c0fb
cmp cl, 0x45
je 0x46c0fb
cmp cl, 0x67
je 0x46c0fb
cmp cl, 0x47
jne 0x46c11e
mov eax, dword [edi + 0x28]
shl eax, 4
mov dword [esp + 0x34], eax
mov eax, dword [eax + esi]
mov dword [esp + 0x30], eax
cmp eax, 0xb
je 0x46c62e
cmp eax, 0xc
je 0x46c62e
mov eax, dword [edi + 0x28]
xorps xmm0, xmm0
mov ecx, dword [edi + 8]
add eax, eax
xor edi, edi
mov dword [esp + 0x30], ecx
movlpd qword [esp + 0x68], xmm0
mov dword [esp + 0x38], edi
mov eax, dword [esi + eax*8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
je 0x46c17a
mov eax, dword [eax + 0x14]
cmp eax, 0xffffffff
je 0x46c1ba
add eax, eax
cmp dword [esi + eax*8], 5
jne case.default.0x46c3b9
mov edi, dword [esi + eax*8 + 8]
mov dword [esp + 0x38], edi
test edi, edi
jns 0x46c17a
or ecx, dword [esp + 0x5c]
neg edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edi
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 0x18]
xor eax, eax
push 6
pop edx
cmp esi, dword [ecx + 0x1c]
je 0x46c222
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x46c1e9
mov ecx, dword [esp + 0x10c]
add eax, eax
cmp dword [ecx + eax*8], 5
jne case.default.0x46c3b9
mov eax, dword [ecx + eax*8 + 8]
test eax, eax
cmovns edx, eax
not eax
shr eax, 0x1f
jmp 0x46c222
imul eax, edi, 0xa
or ecx, 0xffffffff
cmp edi, 0x19999999
cmovbe ecx, eax
movsx eax, byte [edx]
add eax, 0xffffffd0
or edi, 0xffffffff
add eax, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x1c]
inc edx
cmovae edi, eax
cmp edx, dword [ecx + 0x10]
jne 0x46c1ba
mov dword [esp + 0x38], edi
jmp 0x46c17e
xor edx, edx
inc esi
cmp esi, dword [ecx + 0x1c]
je 0x46c21e
mov edi, dword [esp + 0x1c]
imul eax, edx, 0xa
or ecx, 0xffffffff
cmp edx, 0x19999999
cmovbe ecx, eax
movsx eax, byte [esi]
add eax, 0xffffffd0
or edx, 0xffffffff
add eax, ecx
cmp eax, ecx
inc esi
cmovae edx, eax
cmp esi, dword [edi + 0x1c]
jne 0x46c1f5
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x70]
push 0
push edx
push eax
mov eax, dword [esp + 0x2c]
push edi
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x28]
lea eax, [esp + 0x128]
push eax
call fcn.0046ecd4
add esp, 0x24
mov dword [esp + 0x60], eax
cmp eax, 0x2bc
ja 0x46c25f
lea edi, [esp + 0x348]
jmp 0x46c279
cmp eax, 0xffffffff
je 0x46df35
push eax
call fcn.00441ddc
mov edi, eax
pop ecx
test edi, edi
je 0x46df35
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov byte [eax], 0x25
lea esi, [eax + 1]
mov eax, dword [esp + 0x30]
test cl, al
je 0x46c293
mov byte [esi], 0x2d
inc esi
test al, 4
je 0x46c29b
mov byte [esi], 0x2b
inc esi
test al, 8
je 0x46c2a3
mov byte [esi], 0x20
inc esi
test al, 0x10
je 0x46c2ab
mov byte [esi], 0x23
inc esi
test al, 0x20
je 0x46c2b3
mov byte [esi], 0x30
inc esi
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
cmp dword [edx + 0xc], eax
je 0x46c2db
sub eax, dword [edx + 0xc]
push eax
push dword [edx + 0xc]
mov dword [esp + 0x3c], eax
push esi
call fcn.004b8970
mov edx, dword [esp + 0x28]
add esp, 0xc
add esi, dword [esp + 0x34]
mov eax, dword [edx + 0x1c]
cmp dword [edx + 0x18], eax
je 0x46c2ff
sub eax, dword [edx + 0x18]
push eax
push dword [edx + 0x18]
mov dword [esp + 0x3c], eax
push esi
call fcn.004b8970
mov edx, dword [esp + 0x28]
add esp, 0xc
add esi, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
sub eax, 7
je 0x46c332
sub eax, 1
je 0x46c332
sub eax, 1
je 0x46c32e
sub eax, 1
je 0x46c32e
mov ecx, dword [esp + 0x5c]
sub eax, ecx
je 0x46c329
sub eax, ecx
je 0x46c332
sub eax, ecx
je 0x46c332
jmp 0x46c336
mov byte [esi], 0x4c
jmp 0x46c335
mov byte [esi], 0x6c
inc esi
mov byte [esi], 0x6c
inc esi
mov al, byte [edx + 0x24]
mov byte [esi], al
mov byte [esi + 1], 0
xor esi, esi
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0x10c]
cmp eax, 0xffffffff
je 0x46c36a
add eax, eax
cmp dword [ecx + eax*8], 5
jne case.default.0x46c3b9
mov eax, dword [ecx + eax*8 + 8]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x68], eax
jmp 0x46c36e
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x46c397
add eax, eax
cmp dword [ecx + eax*8], 5
jne case.default.0x46c3b9
mov eax, dword [ecx + eax*8 + 8]
mov dword [esp + esi*4 + 0x68], eax
inc esi
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
call fcn.004bb8cc
mov eax, dword [eax]
mov dword [esp + 0x34], eax
call fcn.004bb8cc
xor edx, edx
mov dword [eax], edx
mov eax, dword [esp + 0x44]
dec eax
cmp eax, 0x10
ja case.default.0x46c3b9
jmp dword [eax*4 + 0x46e0c0]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
add ecx, ecx
movsx eax, byte [eax + ecx*8 + 8]
sub esi, edx
je 0x46c51a
sub esi, 1
je 0x46c406
sub esi, 1
jne case.default.0x46c3b9
push eax
push dword [esp + 0x70]
push dword [esp + 0x1c]
push dword [esp + 0x34]
push edi
call fcn.00467e2a
add esp, 0x14
jmp 0x46c528
push eax
push dword [esp + 0x18]
push dword [esp + 0x30]
push edi
call fcn.00467e2a
add esp, 0x10
jmp 0x46c528
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
add ecx, ecx
movzx eax, byte [eax + ecx*8 + 8]
jmp 0x46c3d5
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
add ecx, ecx
movsx eax, word [eax + ecx*8 + 8]
jmp 0x46c3d5
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
add ecx, ecx
movzx eax, word [eax + ecx*8 + 8]
jmp 0x46c3d5
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
jmp 0x46c3d5
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
add ecx, ecx
mov edx, dword [eax + ecx*8 + 8]
mov eax, dword [eax + ecx*8 + 0xc]
sub esi, 0
je 0x46c4c9
sub esi, 1
je 0x46c4c2
sub esi, 1
jne case.default.0x46c3b9
push eax
push edx
push dword [esp + 0x74]
push dword [esp + 0x20]
push dword [esp + 0x38]
push edi
call fcn.00467e2a
add esp, 0x18
jmp 0x46c528
push eax
push edx
jmp 0x46c3f0
push eax
push edx
jmp 0x46c40b
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x10c]
shl ecx, 4
movsd xmm0, qword [ecx + eax + 8]
sub esi, edx
je 0x46c50e
sub esi, 1
je 0x46c502
sub esi, 1
jne case.default.0x46c3b9
push ecx
push ecx
movsd qword [esp], xmm0
jmp 0x46c4ab
push ecx
push ecx
movsd qword [esp], xmm0
jmp 0x46c3f0
push ecx
push ecx
movsd qword [esp], xmm0
jmp 0x46c40b
push eax
push dword [esp + 0x2c]
push edi
call fcn.00467e2a
add esp, 0xc
mov esi, eax
test esi, esi
js 0x46dea8
cmp esi, dword [esp + 0x60]
jae case.default.0x46c3b9
mov edx, dword [esp + 0x40]
mov eax, edx
sub eax, dword [esp + 0x24]
cmp esi, eax
jbe 0x46c5ed
mov ecx, dword [esp + 0x24]
lea eax, [edx + edx]
add ecx, esi
or edx, 0xffffffff
cmp dword [esp + 0x40], 0x7fffffff
cmovbe edx, eax
or eax, 0xffffffff
cmp ecx, dword [esp + 0x24]
cmovae eax, ecx
mov ecx, edx
cmp eax, edx
cmovae ecx, eax
cmp ecx, dword [esp + 0x40]
jbe 0x46c5ed
cmp dword [esp + 0x40], 0
push 0xc
pop eax
cmova eax, edx
mov edx, eax
cmp ecx, edx
cmova edx, ecx
mov dword [esp + 0x40], edx
cmp edx, 0xffffffff
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
je 0x46c5b3
test eax, eax
je 0x46c5b3
push edx
push eax
call fcn.00441e27
pop ecx
jmp 0x46c5b9
push edx
call fcn.00441ddc
mov dword [esp + 0x64], eax
pop ecx
test eax, eax
je 0x46df35
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x48]
jne 0x46c5e7
mov edx, dword [esp + 0x24]
test edx, edx
je 0x46c5e7
push edx
push ecx
push eax
call fcn.004b8970
mov eax, dword [esp + 0x6c]
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x46c5f1
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
push esi
push edi
push eax
call fcn.004b8970
lea eax, [esp + 0x354]
add esp, 0xc
cmp edi, eax
je 0x46c612
push edi
call fcn.00441dce
pop ecx
add dword [esp + 0x24], esi
call fcn.004bb8cc
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [eax], ecx
jmp 0x46de18
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 8]
xor edi, edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], edi
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
je 0x46c6a0
mov eax, dword [eax + 0x14]
cmp eax, 0xffffffff
je 0x46c673
add eax, eax
cmp dword [esi + eax*8], 5
jne case.default.0x46c3b9
mov edi, dword [esi + eax*8 + 8]
mov dword [esp + 0x44], edi
test edi, edi
jns 0x46c6a0
or ecx, dword [esp + 0x5c]
neg edi
mov dword [esp + 0x4c], ecx
jmp 0x46c69c
imul eax, edi, 0xa
or ecx, 0xffffffff
cmp edi, 0x19999999
cmovbe ecx, eax
movsx eax, byte [edx]
add eax, 0xffffffd0
or edi, 0xffffffff
add eax, ecx
cmp eax, ecx
inc edx
cmovae edi, eax
mov eax, dword [esp + 0x1c]
cmp edx, dword [eax + 0x10]
jne 0x46c673
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x1c]
mov esi, dword [edi + 0x18]
cmp esi, dword [edi + 0x1c]
je 0x46c725
mov eax, dword [edi + 0x20]
cmp eax, 0xffffffff
je 0x46c6de
mov ecx, dword [esp + 0x10c]
add eax, eax
cmp dword [ecx + eax*8], 5
jne case.default.0x46c3b9
mov eax, dword [ecx + eax*8 + 8]
xor edx, edx
test eax, eax
cmovns edx, eax
not eax
mov dword [esp + 0x14], edx
test eax, eax
js 0x46c71a
jmp 0x46c72c
xor edx, edx
inc esi
mov dword [esp + 0x14], edx
cmp esi, dword [edi + 0x1c]
je 0x46c713
imul eax, edx, 0xa
or ecx, 0xffffffff
cmp edx, 0x19999999
cmovbe ecx, eax
movsx eax, byte [esi]
add eax, 0xffffffd0
or edx, 0xffffffff
add eax, ecx
cmp eax, ecx
inc esi
cmovae edx, eax
cmp esi, dword [edi + 0x1c]
jne 0x46c6ea
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x10c]
push 0x10
pop esi
cmp edx, esi
jbe 0x46c737
mov esi, edx
jmp 0x46c737
mov ecx, dword [esp + 0x10c]
push 0x10
mov dword [esp + 0x18], 6
pop esi
mov eax, dword [esp + 0x30]
mov edi, esi
cmp eax, 0xc
jne 0x46c7c0
mov eax, dword [esp + 0x20]
cmp al, 0x66
je 0x46c752
cmp al, 0x46
jne 0x46c838
mov eax, dword [esp + 0x34]
push ecx
push ecx
movsd xmm0, qword [eax + ecx + 8]
movsd qword [esp + 0x58], xmm0
movsd qword [esp], xmm0
call fcn.004cae1d
pop ecx
pop ecx
cmp ax, word [esp + 0x5c]
je 0x46c838
movsd xmm1, qword [esp + 0x50]
movaps xmm0, xmm1
addsd xmm0, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x46c838
andps xmm1, xmmword [esp + 0xc0]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046eac0
pop ecx
pop ecx
test eax, eax
js 0x46c838
add eax, dword [esp + 0x14]
cmp esi, eax
jae 0x46c838
mov esi, eax
jmp 0x46c838
mov esi, edi
cmp eax, 0xb
jne 0x46c838
mov edx, dword [esp + 0x1c]
mov al, byte [edx + 0x24]
cmp al, 0x66
je 0x46c7d6
cmp al, 0x46
jne 0x46c838
mov eax, dword [edx + 0x28]
mov esi, edi
add eax, eax
push ecx
push ecx
movsd xmm0, qword [ecx + eax*8 + 8]
movsd qword [esp + 0x58], xmm0
movsd qword [esp], xmm0
call fcn.004cae1d
pop ecx
pop ecx
cmp ax, word [esp + 0x5c]
je 0x46c838
movsd xmm1, qword [esp + 0x50]
movaps xmm0, xmm1
addsd xmm0, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x46c838
andps xmm1, xmmword [esp + 0xc0]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046eac0
pop ecx
pop ecx
test eax, eax
js 0x46c838
add eax, dword [esp + 0x14]
cmp edi, eax
cmovb esi, eax
or ecx, 0xffffffff
lea eax, [esi + 0xc]
cmp eax, esi
cmovae ecx, eax
cmp ecx, dword [esp + 0x44]
cmovb ecx, dword [esp + 0x44]
or edx, 0xffffffff
lea eax, [ecx + 1]
cmp eax, ecx
cmovae edx, eax
mov dword [esp + 0x68], edx
cmp edx, 0x2bc
ja 0x46c870
lea edi, [esp + 0x608]
mov dword [esp + 0x3c], edi
jmp 0x46c88e
cmp edx, 0xffffffff
je 0x46df35
push edx
call fcn.00441ddc
mov edi, eax
mov dword [esp + 0x40], edi
pop ecx
test edi, edi
je 0x46df35
mov edx, dword [esp + 0x10c]
xor eax, eax
mov dword [esp + 0x60], eax
mov esi, edi
mov eax, dword [esp + 0x1c]
push ecx
push ecx
mov eax, dword [eax + 0x28]
add eax, eax
movsd xmm0, qword [edx + eax*8 + 8]
movsd qword [esp + 0x58], xmm0
movsd qword [esp], xmm0
call fcn.004cae1d
cmp dword [esp + 0x38], 0xc
pop ecx
pop ecx
jne 0x46cf32
cmp ax, word [esp + 0x5c]
jne 0x46c901
mov eax, dword [esp + 0x1c]
lea esi, [edi + 3]
mov edx, dword [esp + 0x74]
mov al, byte [eax + 0x24]
sub al, 0x41
cmp dl, al
sbb cl, cl
and cl, 0x20
add cl, 0x41
cmp dl, al
sbb al, al
and al, 0x20
add al, 0x4e
mov byte [edi], al
mov byte [edi + 1], cl
mov byte [edi + 2], al
jmp 0x46ca59
movsd xmm0, qword [esp + 0x50]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.004cae2e
mov edx, dword [esp + 0x54]
pop ecx
pop ecx
test eax, eax
je 0x46c939
movsd xmm1, qword [esp + 0x50]
lea esi, [edi + 1]
xorps xmm1, xmmword [esp + 0x90]
movsd qword [esp + 0x50], xmm1
mov byte [edi], 0x2d
jmp 0x46c954
test dl, 4
je 0x46c943
mov byte [edi], 0x2b
jmp 0x46c94b
test dl, 8
je 0x46c94e
mov byte [edi], 0x20
lea esi, [edi + 1]
movsd xmm1, qword [esp + 0x50]
movsd xmm0, qword [esp + 0x78]
comisd xmm1, xmm0
jbe 0x46c9b0
movaps xmm0, xmm1
addsd xmm0, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x46c9aa
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x74]
mov al, byte [eax + 0x24]
sub al, 0x41
cmp cl, al
sbb ah, ah
and ah, 0x20
add ah, 0x4e
cmp cl, al
sbb dl, dl
and dl, 0x20
add dl, 0x46
cmp cl, al
sbb al, al
and al, 0x20
add al, 0x49
mov byte [esi], al
mov byte [esi + 1], ah
mov byte [esi + 2], dl
add esi, 3
jmp 0x46ca59
movsd xmm0, qword [esp + 0x78]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], esi
mov al, byte [eax + 0x24]
cmp al, 0x66
je 0x46cea2
cmp al, 0x46
je 0x46cea2
cmp al, 0x65
je 0x46cce6
cmp al, 0x45
je 0x46cce6
cmp al, 0x67
je 0x46c9e7
cmp al, 0x47
jne case.default.0x46c3b9
mov ecx, dword [esp + 0x14]
test ecx, ecx
cmove ecx, dword [esp + 0x70]
ucomisd xmm1, xmm0
mov dword [esp + 0x14], ecx
lahf
test ah, 0x44
jp 0x46ca90
lea edi, [ecx - 1]
mov dword [esp + 0x34], 0
test edx, 0x10
mov ecx, edi
cmovne ecx, dword [esp + 0x34]
mov byte [esi], 0x30
mov eax, edx
inc esi
mov dword [esp + 0x34], ecx
test eax, 0x10
jne 0x46ca35
cmp edi, ecx
jbe 0x46d4bd
call fcn.0046e206
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x34]
cmp edi, eax
jbe 0x46ca55
sub edi, eax
push edi
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, edi
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov eax, esi
sub eax, edi
cmp eax, ecx
jae 0x46d518
sub ecx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x44], ecx
lea edi, [ecx + esi]
test al, dl
je 0x46d4c6
test ecx, ecx
je 0x46d512
push ecx
jmp 0x46d507
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046eac0
and dword [esp + 0x3c], 0
mov edi, eax
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
mov eax, ecx
sub eax, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], eax
dec eax
movsd xmm0, qword [esp + 0x50]
push eax
push ecx
push ecx
mov dword [esp + 0x3c], eax
movsd qword [esp], xmm0
call fcn.0046f3db
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x46df35
push eax
call fcn.004bb480
mov edx, dword [esp + 0x18]
mov edi, eax
pop ecx
lea ecx, [edx - 1]
cmp edi, edx
je 0x46cb43
cmp edi, ecx
jb case.default.0x46c3b9
lea ecx, [edx + 1]
cmp edi, ecx
ja case.default.0x46c3b9
cmp dword [esp + 0x34], 0
jne case.default.0x46c3b9
push dword [esp + 0x2c]
call fcn.00441dce
mov eax, dword [esp + 0x34]
pop ecx
cmp edi, dword [esp + 0x14]
jae 0x46cb2d
dec dword [esp + 0x20]
inc dword [esp + 0x38]
inc eax
jmp 0x46cb36
inc dword [esp + 0x20]
dec dword [esp + 0x38]
dec eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
jmp 0x46cab6
push ecx
push dword [esp + 0x30]
call fcn.0046ecac
pop ecx
pop ecx
test eax, eax
je 0x46cbaa
push dword [esp + 0x38]
movsd xmm0, qword [esp + 0x54]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.0046f3db
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
je 0x46df2b
push eax
call fcn.004bb480
pop ecx
cmp eax, dword [esp + 0x14]
jne 0x46cb9c
push dword [esp + 0x2c]
call fcn.00441dce
mov eax, dword [esp + 0x38]
dec dword [esp + 0x24]
mov dword [esp + 0x30], eax
jmp 0x46cba5
push dword [esp + 0x34]
call fcn.00441dce
mov edx, dword [esp + 0x18]
pop ecx
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x30], eax
and dword [esp + 0x30], 0x10
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
jne 0x46cbde
test edi, edi
je 0x46cbde
mov edx, dword [esp + 0x2c]
cmp byte [ecx + edx], 0x30
jne 0x46cbd6
inc ecx
cmp ecx, edi
jb 0x46cbcb
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
cmp eax, 0xfffffffc
jl 0x46cc7f
cmp eax, edx
jge 0x46cc7f
test eax, eax
js 0x46cc3c
lea edx, [eax + 1]
test edx, edx
je 0x46cc0e
mov ecx, dword [esp + 0x2c]
dec edi
mov al, byte [edi + ecx]
mov byte [esi], al
inc esi
sub edx, 1
jne 0x46cbfe
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x30], 0
jne 0x46cc1d
cmp edi, ecx
jbe 0x46ccd7
call fcn.0046e206
mov ecx, dword [esp + 0x38]
jmp 0x46cc30
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp edi, ecx
ja 0x46cc28
jmp 0x46ccd7
mov byte [esi], 0x30
call fcn.0046e206
mov byte [esi + 1], al
add esi, 2
mov eax, dword [esp + 0x20]
not eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x46cc68
push eax
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
jmp 0x46cc79
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp edi, ecx
ja 0x46cc6e
jmp 0x46ccd7
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp dword [esp + 0x30], 0
jne 0x46cc95
cmp edi, ecx
jbe 0x46ccaf
call fcn.0046e206
mov ecx, dword [esp + 0x38]
jmp 0x46cca8
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp edi, ecx
ja 0x46cca0
mov eax, dword [esp + 0x1c]
push dword [esp + 0x20]
push 0x549134
mov al, byte [eax + 0x24]
sub al, byte [esp + 0x64]
mov byte [esi], al
inc esi
push esi
call fcn.00467e2a
add esp, 0xc
jmp 0x46ccd2
inc esi
cmp byte [esi], 0
jne 0x46ccd1
push dword [esp + 0x2c]
call fcn.00441dce
pop ecx
jmp 0x46ca55
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x46cd2d
and dword [esp + 0x2c], 0
mov edi, dword [esp + 0x14]
mov byte [esi], 0x30
inc esi
test dl, 0x10
jne 0x46cd0a
test edi, edi
je 0x46ce79
call fcn.0046e206
mov byte [esi], al
inc esi
test edi, edi
je 0x46ce79
push edi
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, edi
jmp 0x46ce79
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046eac0
and dword [esp + 0x3c], 0
mov edi, eax
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
mov dword [esp + 0x2c], edi
sub eax, edi
movsd xmm0, qword [esp + 0x50]
push eax
push ecx
push ecx
mov dword [esp + 0x44], eax
movsd qword [esp], xmm0
call fcn.0046f3db
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x46df35
push eax
call fcn.004bb480
mov edx, dword [esp + 0x18]
mov edi, eax
pop ecx
lea eax, [edx + 1]
mov dword [esp + 0x30], eax
cmp edi, eax
je 0x46cdd5
cmp edi, edx
jb case.default.0x46c3b9
lea ecx, [edx + 2]
cmp edi, ecx
ja case.default.0x46c3b9
cmp dword [esp + 0x34], 0
jne case.default.0x46c3b9
push dword [esp + 0x20]
call fcn.00441dce
mov eax, dword [esp + 0x3c]
pop ecx
cmp edi, dword [esp + 0x14]
jne 0x46cdc3
dec dword [esp + 0x2c]
inc eax
jmp 0x46cdc8
inc dword [esp + 0x2c]
dec eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
jmp 0x46cd4c
push edx
push dword [esp + 0x24]
call fcn.0046ecac
pop ecx
pop ecx
test eax, eax
je 0x46ce43
mov eax, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x50]
inc eax
push eax
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.0046f3db
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
je 0x46dfaf
push eax
call fcn.004bb480
pop ecx
cmp eax, dword [esp + 0x30]
jne 0x46ce35
push dword [esp + 0x20]
call fcn.00441dce
mov eax, dword [esp + 0x38]
dec dword [esp + 0x30]
mov edx, dword [esp + 0x18]
pop ecx
mov dword [esp + 0x20], eax
jmp 0x46ce47
push dword [esp + 0x34]
call fcn.00441dce
mov edx, dword [esp + 0x18]
pop ecx
mov eax, dword [esp + 0x20]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
test byte [esp + 0x4c], 0x10
jne 0x46ce59
test edx, edx
je 0x46ce6f
call fcn.0046e206
jmp 0x46ce68
mov eax, dword [esp + 0x20]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
test edi, edi
jne 0x46ce60
push dword [esp + 0x20]
call fcn.00441dce
pop ecx
mov eax, dword [esp + 0x1c]
push dword [esp + 0x2c]
push 0x549134
mov al, byte [eax + 0x24]
mov byte [esi], al
inc esi
push esi
call fcn.00467e2a
add esp, 0xc
jmp 0x46ce98
inc esi
cmp byte [esi], 0
jne 0x46ce97
jmp 0x46ca55
push dword [esp + 0x14]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046f3db
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x46df35
push eax
call fcn.004bb480
mov edi, eax
mov eax, dword [esp + 0x18]
pop ecx
cmp edi, eax
jbe 0x46cee3
mov edx, dword [esp + 0x30]
dec edi
mov cl, byte [edi + edx]
mov byte [esi], cl
inc esi
cmp edi, eax
ja 0x46ced6
jmp 0x46cee7
mov byte [esi], 0x30
inc esi
test byte [esp + 0x4c], 0x10
jne 0x46cef2
test eax, eax
je 0x46cf29
call fcn.0046e206
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x14]
cmp eax, edi
jbe 0x46cf25
sub eax, edi
push eax
push 0x30
push esi
mov dword [esp + 0x20], eax
call fcn.004b6f20
add esp, 0xc
add esi, dword [esp + 0x14]
jmp 0x46cf25
mov eax, dword [esp + 0x30]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
test edi, edi
jne 0x46cf1a
push dword [esp + 0x30]
jmp 0x46ccdb
cmp ax, word [esp + 0x5c]
je 0x46c8d2
movsd xmm0, qword [esp + 0x50]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.004cae2e
mov edx, dword [esp + 0x54]
pop ecx
pop ecx
test eax, eax
je 0x46cf75
movsd xmm1, qword [esp + 0x50]
lea esi, [edi + 1]
xorps xmm1, xmmword [esp + 0x90]
movsd qword [esp + 0x50], xmm1
mov byte [edi], 0x2d
jmp 0x46cf90
test dl, 4
je 0x46cf7f
mov byte [edi], 0x2b
jmp 0x46cf87
test dl, 8
je 0x46cf8a
mov byte [edi], 0x20
lea esi, [edi + 1]
movsd xmm1, qword [esp + 0x50]
movsd xmm0, qword [esp + 0x78]
comisd xmm1, xmm0
jbe 0x46cfb7
movaps xmm0, xmm1
addsd xmm0, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x46c971
movsd xmm0, qword [esp + 0x78]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], esi
mov al, byte [eax + 0x24]
cmp al, 0x66
je 0x46d42d
cmp al, 0x46
je 0x46d42d
cmp al, 0x65
je 0x46d271
cmp al, 0x45
je 0x46d271
cmp al, 0x67
je 0x46cfee
cmp al, 0x47
jne case.default.0x46c3b9
mov ecx, dword [esp + 0x14]
test ecx, ecx
cmove ecx, dword [esp + 0x70]
ucomisd xmm1, xmm0
mov dword [esp + 0x14], ecx
lahf
test ah, 0x44
jp 0x46d024
lea edi, [ecx - 1]
mov dword [esp + 0x34], 0
test edx, 0x10
mov ecx, edi
cmovne ecx, dword [esp + 0x34]
jmp 0x46ca1c
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046eac0
and dword [esp + 0x3c], 0
mov edi, eax
mov eax, dword [esp + 0x1c]
sub eax, edi
mov dword [esp + 0x28], edi
pop ecx
mov dword [esp + 0x3c], eax
dec eax
pop ecx
movsd xmm0, qword [esp + 0x50]
push eax
push ecx
push ecx
mov dword [esp + 0x3c], eax
movsd qword [esp], xmm0
call fcn.0046f3a1
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x46df35
push eax
call fcn.004bb480
mov edx, dword [esp + 0x18]
mov edi, eax
pop ecx
lea ecx, [edx - 1]
cmp edi, edx
je 0x46d0d5
cmp edi, ecx
jb case.default.0x46c3b9
lea ecx, [edx + 1]
cmp edi, ecx
ja case.default.0x46c3b9
cmp dword [esp + 0x34], 0
jne case.default.0x46c3b9
push dword [esp + 0x2c]
call fcn.00441dce
mov eax, dword [esp + 0x34]
pop ecx
cmp edi, dword [esp + 0x14]
jae 0x46d0bf
dec dword [esp + 0x20]
inc dword [esp + 0x38]
inc eax
jmp 0x46d0c8
inc dword [esp + 0x20]
dec dword [esp + 0x38]
dec eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
jmp 0x46d048
push ecx
push dword [esp + 0x30]
call fcn.0046ecac
pop ecx
pop ecx
test eax, eax
je 0x46d13c
push dword [esp + 0x38]
movsd xmm0, qword [esp + 0x54]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.0046f3a1
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
je 0x46df2b
push eax
call fcn.004bb480
pop ecx
cmp eax, dword [esp + 0x14]
jne 0x46d12e
push dword [esp + 0x2c]
call fcn.00441dce
mov eax, dword [esp + 0x38]
dec dword [esp + 0x24]
mov dword [esp + 0x30], eax
jmp 0x46d137
push dword [esp + 0x34]
call fcn.00441dce
mov edx, dword [esp + 0x18]
pop ecx
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x30], eax
and dword [esp + 0x30], 0x10
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
jne 0x46d170
test edi, edi
je 0x46d170
mov edx, dword [esp + 0x2c]
cmp byte [ecx + edx], 0x30
jne 0x46d168
inc ecx
cmp ecx, edi
jb 0x46d15d
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
cmp eax, 0xfffffffc
jl 0x46d214
cmp eax, edx
jge 0x46d214
test eax, eax
js 0x46d1ce
lea edx, [eax + 1]
test edx, edx
je 0x46d1a0
mov ecx, dword [esp + 0x2c]
dec edi
mov al, byte [edi + ecx]
mov byte [esi], al
inc esi
sub edx, 1
jne 0x46d190
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x30], 0
jne 0x46d1af
cmp edi, ecx
jbe 0x46ccd7
call fcn.0046e206
mov ecx, dword [esp + 0x38]
jmp 0x46d1c2
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp edi, ecx
ja 0x46d1ba
jmp 0x46ccd7
mov byte [esi], 0x30
call fcn.0046e206
mov byte [esi + 1], al
add esi, 2
mov eax, dword [esp + 0x20]
not eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x46d1fa
push eax
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
jmp 0x46d20b
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp edi, ecx
ja 0x46d200
jmp 0x46ccd7
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp dword [esp + 0x30], 0
jne 0x46d22a
cmp edi, ecx
jbe 0x46d244
call fcn.0046e206
mov ecx, dword [esp + 0x38]
jmp 0x46d23d
mov eax, dword [esp + 0x2c]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
cmp edi, ecx
ja 0x46d235
mov eax, dword [esp + 0x1c]
push dword [esp + 0x20]
push 0x549120
mov al, byte [eax + 0x24]
sub al, byte [esp + 0x64]
mov byte [esi], al
inc esi
push esi
call fcn.00467e2a
add esp, 0xc
jmp 0x46d267
inc esi
cmp byte [esi], 0
jne 0x46d266
jmp 0x46ccd7
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x46d2b8
and dword [esp + 0x2c], 0
mov edi, dword [esp + 0x14]
mov byte [esi], 0x30
inc esi
test dl, 0x10
jne 0x46d295
test edi, edi
je 0x46d404
call fcn.0046e206
mov byte [esi], al
inc esi
test edi, edi
je 0x46d404
push edi
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, edi
jmp 0x46d404
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046eac0
and dword [esp + 0x3c], 0
mov edi, eax
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
mov dword [esp + 0x2c], edi
sub eax, edi
movsd xmm0, qword [esp + 0x50]
push eax
push ecx
push ecx
mov dword [esp + 0x44], eax
movsd qword [esp], xmm0
call fcn.0046f3a1
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x46df35
push eax
call fcn.004bb480
mov edx, dword [esp + 0x18]
mov edi, eax
pop ecx
lea eax, [edx + 1]
mov dword [esp + 0x30], eax
cmp edi, eax
je 0x46d360
cmp edi, edx
jb case.default.0x46c3b9
lea ecx, [edx + 2]
cmp edi, ecx
ja case.default.0x46c3b9
cmp dword [esp + 0x34], 0
jne case.default.0x46c3b9
push dword [esp + 0x20]
call fcn.00441dce
mov eax, dword [esp + 0x3c]
pop ecx
cmp edi, dword [esp + 0x14]
jne 0x46d34e
dec dword [esp + 0x2c]
inc eax
jmp 0x46d353
inc dword [esp + 0x2c]
dec eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
jmp 0x46d2d7
push edx
push dword [esp + 0x24]
call fcn.0046ecac
pop ecx
pop ecx
test eax, eax
je 0x46d3ce
mov eax, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x50]
inc eax
push eax
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.0046f3a1
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
je 0x46dfaf
push eax
call fcn.004bb480
pop ecx
cmp eax, dword [esp + 0x30]
jne 0x46d3c0
push dword [esp + 0x20]
call fcn.00441dce
mov eax, dword [esp + 0x38]
dec dword [esp + 0x30]
mov edx, dword [esp + 0x18]
pop ecx
mov dword [esp + 0x20], eax
jmp 0x46d3d2
push dword [esp + 0x34]
call fcn.00441dce
mov edx, dword [esp + 0x18]
pop ecx
mov eax, dword [esp + 0x20]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
test byte [esp + 0x4c], 0x10
jne 0x46d3e4
test edx, edx
je 0x46d3fa
call fcn.0046e206
jmp 0x46d3f3
mov eax, dword [esp + 0x20]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
test edi, edi
jne 0x46d3eb
push dword [esp + 0x20]
call fcn.00441dce
pop ecx
mov eax, dword [esp + 0x1c]
push dword [esp + 0x2c]
push 0x549118
mov al, byte [eax + 0x24]
mov byte [esi], al
inc esi
push esi
call fcn.00467e2a
add esp, 0xc
jmp 0x46d423
inc esi
cmp byte [esi], 0
jne 0x46d422
jmp 0x46ca55
push dword [esp + 0x14]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046f3a1
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x46df35
push eax
call fcn.004bb480
mov edi, eax
mov eax, dword [esp + 0x18]
pop ecx
cmp edi, eax
jbe 0x46d46e
mov edx, dword [esp + 0x30]
dec edi
mov cl, byte [edi + edx]
mov byte [esi], cl
inc esi
cmp edi, eax
ja 0x46d461
jmp 0x46d472
mov byte [esi], 0x30
inc esi
test byte [esp + 0x4c], 0x10
jne 0x46d481
test eax, eax
je 0x46cf29
call fcn.0046e206
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x14]
cmp eax, edi
jbe 0x46d4b4
sub eax, edi
push eax
push 0x30
push esi
mov dword [esp + 0x20], eax
call fcn.004b6f20
add esp, 0xc
add esi, dword [esp + 0x14]
jmp 0x46d4b4
mov eax, dword [esp + 0x30]
dec edi
mov al, byte [edi + eax]
mov byte [esi], al
inc esi
test edi, edi
jne 0x46d4a9
jmp 0x46cf29
mov edi, dword [esp + 0x3c]
jmp 0x46ca5d
test dl, 0x20
je 0x46d4ec
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x46d4ec
mov edx, dword [esp + 0x44]
cmp esi, ecx
jbe 0x46d4e3
dec esi
mov al, byte [esi]
mov byte [esi + edx], al
jmp 0x46d4d7
test edx, edx
je 0x46d512
push edx
push 0x30
jmp 0x46d509
mov edx, dword [esp + 0x3c]
mov ecx, edi
jmp 0x46d4fa
dec esi
dec ecx
mov al, byte [esi]
mov byte [ecx], al
cmp esi, edx
ja 0x46d4f4
mov edx, dword [esp + 0x44]
test edx, edx
je 0x46d512
push edx
push 0x20
push esi
call fcn.004b6f20
add esp, 0xc
mov esi, edi
mov edi, dword [esp + 0x3c]
sub esi, edi
cmp esi, dword [esp + 0x68]
jae case.default.0x46c3b9
mov ecx, dword [esp + 0x40]
mov eax, ecx
sub eax, dword [esp + 0x24]
cmp esi, eax
jb 0x46d5c7
mov eax, dword [esp + 0x24]
or edx, 0xffffffff
add eax, esi
cmp eax, dword [esp + 0x24]
cmovae edx, eax
cmp edx, ecx
jbe 0x46d5c7
mov edi, dword [esp + 0x40]
lea eax, [ecx + ecx]
or ecx, 0xffffffff
cmp edi, 0x7fffffff
push 0xc
cmovbe ecx, eax
test edi, edi
pop eax
cmovne eax, ecx
mov ecx, eax
cmp edx, ecx
cmova ecx, edx
mov dword [esp + 0x40], ecx
cmp ecx, 0xffffffff
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
je 0x46d591
test eax, eax
je 0x46d591
push ecx
push eax
call fcn.00441e27
pop ecx
jmp 0x46d597
push ecx
call fcn.00441ddc
mov edi, eax
pop ecx
test edi, edi
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
jne 0x46d5bf
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46d5bf
push ecx
push eax
push edi
call fcn.004b8970
add esp, 0xc
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
push esi
push edi
push eax
call fcn.004b8970
lea eax, [esp + 0x614]
jmp 0x46ddfc
and dword [esp + 0x44], 0
mov edx, dword [edi + 0xc]
mov eax, dword [esi + eax*8]
mov ecx, dword [edi + 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x20], ecx
cmp edx, dword [edi + 0x10]
je 0x46d662
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
je 0x46d62e
add eax, eax
cmp dword [esi + eax*8], 5
jne case.default.0x46c3b9
mov eax, dword [esi + eax*8 + 8]
mov dword [esp + 0x44], eax
test eax, eax
jns 0x46d662
or ecx, dword [esp + 0x5c]
neg eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], eax
jmp 0x46d662
mov esi, dword [esp + 0x44]
imul eax, esi, 0xa
or ecx, 0xffffffff
cmp esi, 0x19999999
cmovbe ecx, eax
movsx eax, byte [edx]
add eax, 0xffffffd0
or esi, 0xffffffff
add eax, ecx
cmp eax, ecx
inc edx
cmovae esi, eax
cmp edx, dword [edi + 0x10]
jne 0x46d632
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x10c]
mov ecx, dword [esp + 0x1c]
xor edi, edi
and dword [esp + 0x30], 0
mov edx, dword [ecx + 0x18]
cmp edx, dword [ecx + 0x1c]
je 0x46d6d6
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x46d69d
add eax, eax
cmp dword [esi + eax*8], 5
jne case.default.0x46c3b9
mov esi, dword [esi + eax*8 + 8]
test esi, esi
cmovns edi, esi
not esi
shr esi, 0x1f
mov dword [esp + 0x30], esi
jmp 0x46d6d6
xor edi, edi
inc edx
cmp edx, dword [ecx + 0x1c]
je 0x46d6ce
imul eax, edi, 0xa
or ecx, 0xffffffff
cmp edi, 0x19999999
cmovbe ecx, eax
movsx eax, byte [edx]
add eax, 0xffffffd0
or edi, 0xffffffff
add eax, ecx
cmp eax, ecx
inc edx
cmovae edi, eax
mov eax, dword [esp + 0x1c]
cmp edx, dword [eax + 0x1c]
jne 0x46d6a5
mov eax, dword [esp + 0x70]
mov dword [esp + 0x30], eax
push 0xe
pop ecx
cmp edi, ecx
cmova ecx, edi
or edx, 0xffffffff
lea eax, [ecx + 0xc]
cmp eax, ecx
cmovae edx, eax
cmp edx, dword [esp + 0x44]
cmovb edx, dword [esp + 0x44]
or ecx, 0xffffffff
lea eax, [edx + 1]
cmp eax, edx
cmovae ecx, eax
mov dword [esp + 0x34], ecx
cmp ecx, 0x2bc
ja 0x46d716
lea eax, [esp + 0x8c8]
mov dword [esp + 0x3c], eax
jmp 0x46d732
cmp ecx, 0xffffffff
je 0x46df35
push ecx
call fcn.00441ddc
mov dword [esp + 0x40], eax
pop ecx
test eax, eax
je 0x46df35
mov edx, dword [esp + 0x10c]
mov esi, eax
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x28]
shl ecx, 4
push ecx
push ecx
movsd xmm0, qword [ecx + edx + 8]
movsd qword [esp + 0x58], xmm0
movsd qword [esp], xmm0
call fcn.004cae1d
cmp dword [esp + 0x70], 0xc
pop ecx
pop ecx
jne 0x46da39
cmp ax, word [esp + 0x5c]
je 0x46da40
movsd xmm0, qword [esp + 0x50]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.004cae2e
pop ecx
pop ecx
test eax, eax
je 0x46d7ad
mov eax, dword [esp + 0x3c]
movsd xmm1, qword [esp + 0x50]
xorps xmm1, xmmword [esp + 0x90]
mov byte [eax], 0x2d
lea esi, [eax + 1]
jmp 0x46d7d5
mov eax, dword [esp + 0x20]
test al, 4
je 0x46d7c1
mov eax, dword [esp + 0x3c]
mov byte [eax], 0x2b
lea esi, [eax + 1]
jmp 0x46d7cf
test al, 8
je 0x46d7cf
mov edx, dword [esp + 0x3c]
mov byte [edx], 0x20
lea esi, [edx + 1]
movsd xmm1, qword [esp + 0x50]
movsd xmm3, qword [esp + 0x78]
comisd xmm1, xmm3
jbe 0x46d8a0
movaps xmm0, xmm1
addsd xmm0, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x46d874
mov eax, dword [esp + 0x1c]
push 0x4e
mov cl, byte [eax + 0x24]
pop eax
push 0x46
cmp cl, 0x41
mov byte [esp + 0x6b], cl
pop edx
cmovne eax, dword [esp + 0x84]
mov dword [esp + 0x68], eax
push 0x66
pop eax
cmovne edx, eax
cmp cl, 0x41
push 0x49
pop eax
cmovne eax, dword [esp + 0xa8]
mov byte [esi], al
mov eax, dword [esp + 0x68]
mov byte [esi + 1], al
mov byte [esi + 2], dl
add esi, 3
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov eax, esi
sub eax, edi
cmp eax, edx
jae 0x46dd36
mov ecx, dword [esp + 0x5c]
sub edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], edx
lea edi, [edx + esi]
test cl, al
je 0x46dceb
test edx, edx
je 0x46dd30
push edx
jmp 0x46dd25
lea eax, [esp + 0xb0]
push eax
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046fe42
movsd xmm3, qword [esp + 0x84]
add esp, 0xc
fstp qword [esp + 0x50]
movsd xmm2, qword [esp + 0x50]
jmp 0x46d8ab
and dword [esp + 0xb0], 0
movaps xmm2, xmm3
cmp dword [esp + 0x30], 0
je 0x46d966
cmp edi, 0xe
jae 0x46d966
movaps xmm1, xmm2
mov eax, edi
cvttsd2si edx, xmm2
movd xmm0, edx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
test edi, edi
je 0x46d900
movsd xmm3, qword [esp + 0xb8]
mulsd xmm1, xmm3
cvttsd2si edx, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
sub eax, 1
jne 0x46d8e1
movsd xmm3, qword [esp + 0x78]
xor ecx, ecx
comisd xmm1, xmmword [esp + 0xd0]
setae cl
xor eax, eax
comisd xmm1, xmmword [esp + 0xd0]
seta al
test dl, 1
cmovne eax, ecx
test eax, eax
je 0x46d935
movsd xmm0, qword [esp + 0xd8]
subsd xmm0, xmm1
jmp 0x46d940
movaps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x90]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x46d962
mov eax, edi
test edi, edi
je 0x46d962
movsd xmm1, qword [esp + 0xe0]
mulsd xmm0, xmm1
sub eax, 1
jne 0x46d959
addsd xmm2, xmm0
mov eax, dword [esp + 0x1c]
mov byte [esi], 0x30
mov al, byte [eax + 0x24]
add al, 0x17
mov byte [esi + 1], al
add esi, 2
cvttsd2si eax, xmm2
mov dword [esp + 0x60], esi
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
mov byte [esi], al
inc esi
test byte [esp + 0x20], 0x10
subsd xmm2, xmm0
movsd qword [esp + 0x50], xmm2
jne 0x46d9a8
comisd xmm2, xmm3
ja 0x46d9a8
test edi, edi
je 0x46da0b
call fcn.0046e206
movsd xmm1, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x78]
mov byte [esi], al
inc esi
jmp 0x46d9f3
mulsd xmm1, qword [esp + 0xb8]
cvttsd2si ecx, xmm1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp ecx, 0xa
jge 0x46d9e0
mov al, 0x30
jmp 0x46d9e9
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
sub al, 0xa
add cl, al
mov byte [esi], cl
inc esi
test edi, edi
je 0x46d9f3
dec edi
comisd xmm1, xmm2
ja 0x46d9be
test edi, edi
je 0x46da0b
push edi
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, edi
mov eax, dword [esp + 0x1c]
push dword [esp + 0xb0]
push 0x549130
mov al, byte [eax + 0x24]
add al, 0xf
mov byte [esi], al
inc esi
push esi
call fcn.00467e2a
add esp, 0xc
jmp 0x46da2f
inc esi
cmp byte [esi], 0
jne 0x46da2e
jmp 0x46d839
cmp ax, word [esp + 0x5c]
jne 0x46da71
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
push 0x41
pop edx
cmp byte [eax + 0x24], dl
push 0x4e
cmovne edx, dword [esp + 0xb8]
lea esi, [edi + 3]
pop eax
cmovne eax, dword [esp + 0x84]
mov byte [edi], al
mov byte [edi + 1], dl
mov byte [edi + 2], al
jmp 0x46d83d
movsd xmm0, qword [esp + 0x50]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.004cae2e
pop ecx
pop ecx
test eax, eax
je 0x46daa3
mov eax, dword [esp + 0x3c]
movsd xmm1, qword [esp + 0x50]
xorps xmm1, xmmword [esp + 0x90]
mov byte [eax], 0x2d
lea esi, [eax + 1]
jmp 0x46dacb
mov eax, dword [esp + 0x20]
test al, 4
je 0x46dab7
mov eax, dword [esp + 0x3c]
mov byte [eax], 0x2b
lea esi, [eax + 1]
jmp 0x46dac5
test al, 8
je 0x46dac5
mov edx, dword [esp + 0x3c]
mov byte [edx], 0x20
lea esi, [edx + 1]
movsd xmm1, qword [esp + 0x50]
movsd xmm3, qword [esp + 0x78]
comisd xmm1, xmm3
jbe 0x46db53
movaps xmm0, xmm1
addsd xmm0, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x46db27
mov eax, dword [esp + 0x1c]
push 0x4e
mov cl, byte [eax + 0x24]
pop eax
push 0x46
cmp cl, 0x41
mov byte [esp + 0x6b], cl
pop edx
cmovne eax, dword [esp + 0x84]
mov dword [esp + 0x68], eax
push 0x66
pop eax
cmovne edx, eax
cmp cl, 0x41
push 0x49
pop eax
cmovne eax, dword [esp + 0xa8]
mov byte [esi], al
mov eax, dword [esp + 0x68]
jmp 0x46d830
lea eax, [esp + 0x88]
push eax
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.0046fe42
movsd xmm3, qword [esp + 0x84]
add esp, 0xc
fstp qword [esp + 0x50]
movsd xmm2, qword [esp + 0x50]
jmp 0x46db5e
and dword [esp + 0x88], 0
movaps xmm2, xmm3
cmp dword [esp + 0x30], 0
je 0x46dc19
cmp edi, 0xe
jae 0x46dc19
movaps xmm1, xmm2
mov eax, edi
cvttsd2si edx, xmm2
movd xmm0, edx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
test edi, edi
je 0x46dbb3
movsd xmm3, qword [esp + 0xb8]
mulsd xmm1, xmm3
cvttsd2si edx, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
sub eax, 1
jne 0x46db94
movsd xmm3, qword [esp + 0x78]
xor ecx, ecx
comisd xmm1, xmmword [esp + 0xd0]
setae cl
xor eax, eax
comisd xmm1, xmmword [esp + 0xd0]
seta al
test dl, 1
cmovne eax, ecx
test eax, eax
je 0x46dbe8
movsd xmm0, qword [esp + 0xd8]
subsd xmm0, xmm1
jmp 0x46dbf3
movaps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x90]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x46dc15
mov eax, edi
test edi, edi
je 0x46dc15
movsd xmm1, qword [esp + 0xe0]
mulsd xmm0, xmm1
sub eax, 1
jne 0x46dc0c
addsd xmm2, xmm0
mov eax, dword [esp + 0x1c]
mov byte [esi], 0x30
mov al, byte [eax + 0x24]
add al, 0x17
mov byte [esi + 1], al
add esi, 2
cvttsd2si eax, xmm2
mov dword [esp + 0x60], esi
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
mov byte [esi], al
inc esi
test byte [esp + 0x20], 0x10
subsd xmm2, xmm0
movsd qword [esp + 0x50], xmm2
jne 0x46dc5b
comisd xmm2, xmm3
ja 0x46dc5b
test edi, edi
je 0x46dcbe
call fcn.0046e206
movsd xmm1, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x78]
mov byte [esi], al
inc esi
jmp 0x46dca6
mulsd xmm1, qword [esp + 0xb8]
cvttsd2si ecx, xmm1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp ecx, 0xa
jge 0x46dc93
mov al, 0x30
jmp 0x46dc9c
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
sub al, 0xa
add cl, al
mov byte [esi], cl
inc esi
test edi, edi
je 0x46dca6
dec edi
comisd xmm1, xmm2
ja 0x46dc71
test edi, edi
je 0x46dcbe
push edi
push 0x30
push esi
call fcn.004b6f20
add esp, 0xc
add esi, edi
mov eax, dword [esp + 0x1c]
push dword [esp + 0x88]
push 0x549130
mov al, byte [eax + 0x24]
add al, 0xf
mov byte [esi], al
inc esi
push esi
call fcn.00467e2a
add esp, 0xc
cmp byte [esi], 0
je 0x46d839
inc esi
jmp 0x46dcdf
test al, 0x20
je 0x46dcf7
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x46dd05
mov edx, dword [esp + 0x3c]
mov ecx, edi
jmp 0x46dd18
dec esi
mov al, byte [esi]
mov byte [esi + edx], al
cmp esi, ecx
ja 0x46dcff
test edx, edx
je 0x46dd30
push edx
push 0x30
jmp 0x46dd27
dec esi
dec ecx
mov al, byte [esi]
mov byte [ecx], al
cmp esi, edx
ja 0x46dd12
mov eax, dword [esp + 0x44]
test eax, eax
je 0x46dd30
push eax
push 0x20
push esi
call fcn.004b6f20
add esp, 0xc
mov esi, edi
mov edi, dword [esp + 0x3c]
sub esi, edi
cmp esi, dword [esp + 0x34]
jae case.default.0x46c3b9
mov ecx, dword [esp + 0x40]
mov eax, ecx
sub eax, dword [esp + 0x24]
cmp esi, eax
jb 0x46dde5
mov eax, dword [esp + 0x24]
or edx, 0xffffffff
add eax, esi
cmp eax, dword [esp + 0x24]
cmovae edx, eax
cmp edx, ecx
jbe 0x46dde5
mov edi, dword [esp + 0x40]
lea eax, [ecx + ecx]
or ecx, 0xffffffff
cmp edi, 0x7fffffff
push 0xc
cmovbe ecx, eax
test edi, edi
pop eax
cmovne eax, ecx
mov ecx, eax
cmp edx, ecx
cmova ecx, edx
mov dword [esp + 0x40], ecx
cmp ecx, 0xffffffff
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
je 0x46ddaf
test eax, eax
je 0x46ddaf
push ecx
push eax
call fcn.00441e27
pop ecx
jmp 0x46ddb5
push ecx
call fcn.00441ddc
mov edi, eax
pop ecx
test edi, edi
je 0x46df35
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
jne 0x46dddd
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46dddd
push ecx
push eax
push edi
call fcn.004b8970
add esp, 0xc
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
push esi
push edi
push eax
call fcn.004b8970
lea eax, [esp + 0x8d4]
add esp, 0xc
cmp edi, eax
je 0x46de0a
push edi
call fcn.00441dce
pop ecx
mov edx, dword [esp + 0x24]
add edx, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x40]
mov edi, dword [eax + 4]
add eax, 0x2c
jmp 0x46b8aa
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
je 0x46de47
test eax, eax
je 0x46de47
push eax
call fcn.00441dce
pop ecx
push dword [esp + 0x28]
call fcn.00441dce
lea eax, [esp + 0x194]
pop ecx
cmp dword [esp + 0x184], eax
je 0x46de6e
push dword [esp + 0x184]
call fcn.00441dce
pop ecx
lea eax, [esp + 0x110]
cmp dword [esp + 0x10c], eax
je 0x46de8b
push dword [esp + 0x10c]
call fcn.00441dce
pop ecx
call fcn.004bb8cc
mov dword [eax], 0x2a
jmp 0x46df99
cmp esi, dword [esp + 0x48]
je 0x46de47
test esi, esi
je 0x46de47
push esi
jmp 0x46de41
call fcn.004bb8cc
mov esi, dword [eax]
test esi, esi
jne 0x46dec9
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
cmp al, 0x63
je 0x46dec6
cmp al, 0x73
je 0x46dec6
push 0x16
jmp 0x46dec8
push 0x2a
pop esi
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x48]
je 0x46dede
test eax, eax
je 0x46dede
push eax
call fcn.00441dce
pop ecx
push dword [esp + 0x28]
call fcn.00441dce
lea eax, [esp + 0x194]
pop ecx
cmp dword [esp + 0x184], eax
je 0x46df05
push dword [esp + 0x184]
call fcn.00441dce
pop ecx
lea eax, [esp + 0x110]
cmp dword [esp + 0x10c], eax
je 0x46df22
push dword [esp + 0x10c]
call fcn.00441dce
pop ecx
call fcn.004bb8cc
mov dword [eax], esi
jmp 0x46df99
push dword [esp + 0x2c]
call fcn.00441dce
pop ecx
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x48]
je 0x46df4a
test esi, esi
je 0x46df4a
push esi
call fcn.00441dce
pop ecx
push dword [esp + 0x28]
call fcn.00441dce
pop ecx
lea eax, [esp + 0x190]
cmp dword [esp + 0x184], eax
je 0x46df71
push dword [esp + 0x184]
call fcn.00441dce
pop ecx
lea eax, [esp + 0x110]
cmp dword [esp + 0x10c], eax
je 0x46df8e
push dword [esp + 0x10c]
call fcn.00441dce
pop ecx
call fcn.004bb8cc
mov dword [eax], 0xc
xor eax, eax
mov ecx, dword [esp + 0xb8c]
pop edi
pop esi
xor ecx, esp
call fcn.004b5ec4
mov esp, ebp
pop ebp
ret
push dword [esp + 0x20]
jmp 0x46df2f
mov ecx, dword [esp + 0x24]
lea edi, [edx + 1]
mov eax, dword [esp + 0x40]
or edx, 0xffffffff
cmp edi, ecx
cmovae edx, edi
cmp edx, eax
jbe 0x46e046
add eax, eax
or ecx, 0xffffffff
cmp dword [esp + 0x40], 0x7fffffff
push 0xc
cmovbe ecx, eax
cmp dword [esp + 0x44], 0
pop eax
cmova eax, ecx
cmp edx, eax
cmova eax, edx
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x46df39
cmp esi, dword [esp + 0x48]
je 0x46e010
test esi, esi
je 0x46e010
push eax
push esi
call fcn.00441e27
pop ecx
jmp 0x46e016
push eax
call fcn.00441ddc
mov esi, eax
pop ecx
test esi, esi
je 0x46df35
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, dword [esp + 0x48]
jne 0x46e042
test ecx, ecx
je 0x46e042
push ecx
push eax
push esi
call fcn.004b8970
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [esp + 0x40]
mov byte [ecx + esi], 0
cmp esi, dword [esp + 0x48]
je 0x46e062
cmp edi, eax
jae 0x46e062
push edi
push esi
call fcn.00441e27
test eax, eax
pop ecx
pop ecx
cmovne esi, eax
push dword [esp + 0x28]
call fcn.00441dce
lea eax, [esp + 0x194]
pop ecx
cmp dword [esp + 0x184], eax
je 0x46e089
push dword [esp + 0x184]
call fcn.00441dce
pop ecx
lea eax, [esp + 0x110]
cmp dword [esp + 0x10c], eax
je 0x46e0a6
push dword [esp + 0x10c]
call fcn.00441dce
pop ecx
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, esi
jmp 0x46df9b
call fcn.004c9782
nop
rol bl, 0x46
add byte [872433348], bl
les eax, [esi]
dec ebx
les eax, [esi]
les eax, gs:[esi]
les eax, gs:[esi]
les eax, gs:[esi]
les eax, gs:[esi]
jle 4645030
inc esi
add byte [esi - 0x3c], bh
inc esi
add al, dl
les eax, [esi]
rol ah, 1
inc esi
add byte [ebp - 0x3c], ah
inc esi
add byte [ebx - 0x3c], cl
inc esi
add byte [ebp - 0x3c], ah
inc esi
add byte [ebp - 0x3c], ah
inc esi
add byte [ebp - 0x3c], ah
inc esi
add byte [ebx + 0x555310ec], al
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
mov eax, ebp
shr eax, 0x1f
push edi
mov dword [esp + 0xc], ebp
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x52a1e0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x549150]
call fcn.004b5ee0
mov ebx, dword [esp + 0x28]
inc eax
imul eax, eax, 9
or edx, 0xffffffff
mov ecx, edx
add eax, ebx
cmp eax, ebx
cmovae ecx, eax
lea eax, [ecx + 1]
cmp eax, ecx
cmovae edx, eax
push edx
call fcn.00441ddc
mov edi, eax
mov dword [esp + 0x14], edi
pop ecx
test edi, edi
je 0x46e1fd
push esi
mov esi, edi
test ebx, ebx
je 0x46e180
push ebx
push 0x30
push edi
call fcn.004b6f20
add esp, 0xc
lea esi, [ebx + edi]
test ebp, ebp
je 0x46e1ef
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x2c], ebp
lea edi, [eax + ebp*4]
push 0
push 0x3b9aca00
xor eax, eax
lea edi, [edi - 4]
or eax, dword [edi]
push ecx
push eax
call fcn.004b66e0
mov dword [edi], eax
sub ebp, 1
jne 0x46e191
mov ebp, dword [esp + 0x10]
push 9
pop edi
mov eax, ecx
xor edx, edx
push 0xa
pop ecx
div ecx
add dl, 0x30
mov ecx, eax
mov byte [esi], dl
inc esi
sub edi, 1
jne 0x46e1b4
mov ecx, dword [esp + 0x28]
lea eax, [ebp - 1]
cmp dword [ecx + ebp*4 - 4], edi
cmovne eax, ebp
mov ebp, eax
mov dword [esp + 0x10], ebp
test ebp, ebp
jne 0x46e184
mov edi, dword [esp + 0x14]
jmp 0x46e1ef
cmp byte [esi - 1], 0x30
jne 0x46e1f9
dec esi
cmp esi, edi
ja 0x46e1e8
jne 0x46e1f9
mov byte [esi], 0x30
inc esi
mov byte [esi], 0
pop esi
mov eax, edi
pop edi
pop ebp
pop ebx
add esp, 0x10
ret