Function at 0x4e0b50
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x484
mov eax, dword [0x6d63d0]
movss xmm0, dword [0x68b4fc]
mov edx, dword [0x6c692c]
movss dword [esp + 0x94], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [0x68b4fc]
mov dword [esp + 0x480], eax
mov eax, dword [0x6c6928]
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [0x68b500]
push ebx
mov dword [esp + 0x18], eax
mov eax, dword [0x6f225c]
movss dword [esp + 0xa4], xmm0
movaps xmm1, xmmword [esp + 0x98]
mov ebx, ecx
lea ecx, [esp + 0x18]
movss xmm0, dword [ecx]
movaps xmm2, xmm0
mov dword [esp + 0x18], edx
movss xmm0, dword [esp + 0x18]
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x88], xmm1
mulps xmm1, xmm0
movaps xmm0, xmm1
movss xmm0, xmm2
movaps xmmword [eax + 0x20], xmm0
mov ecx, 1
or word [eax + 0x32], cx
mov eax, dword [0x6f2260]
movaps xmmword [eax + 0x20], xmm0
or word [eax + 0x32], cx
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], eax
cmp dword [ebp + 8], 4
push esi
push edi
jne 0x4e3afe
mov ecx, dword [0x6f2234]
mov al, byte [ecx + 0x345]
test al, al
je 0x4e3afe
mov ecx, 0x6d1010
call fcn.00618f70
mov edx, dword [0x6f2234]
mov esi, eax
mov al, byte [edx + 9]
cmp al, 9
mov dword [esp + 0x38], esi
je 0x4e0c5c
cmp al, 0xa
je 0x4e0c5c
xor al, al
jmp 0x4e0c60
xor eax, eax
mov al, 1
push eax
xor eax, eax
mov al, byte [ebx + 0x74]
mov ecx, 0x6ebd30
push eax
push esi
call fcn.004d3110
push esi
mov ecx, ebx
call fcn.004e05c0
lea ecx, [esp + 0x20]
push ecx
mov ecx, 0x6bea58
call fcn.004d1360
lea edx, [esp + 0x40]
push edx
mov ecx, 0x6bea8c
call fcn.004d1360
lea eax, [esp + 0xc0]
push eax
mov ecx, 0x6beabc
call fcn.004d1360
lea ecx, [esp + 0x358]
push ecx
mov ecx, 0x6beaec
call fcn.004d1360
lea edx, [esp + 0xa0]
push edx
mov ecx, 0x6beb00
call fcn.004d1360
mov word [esp + 0x20], 0xa
call fcn.006183f0
movaps xmm3, xmmword [0x6bf1b0]
movaps xmm6, xmmword [0x6bf1c0]
sub eax, 0x8a
mov word [esp + 0x22], ax
mov eax, dword [esp + 0x22]
add eax, 4
mov word [esp + 0x42], ax
mov eax, dword [ebx + 4]
test eax, 0x10000
mov word [esp + 0x40], 0xf
mov word [esp + 0xc2], 0x14
mov word [esp + 0x35a], 0x30
mov word [esp + 0xa2], 0x2c
movaps xmmword [esp + 0x230], xmm3
movaps xmmword [esp + 0x240], xmm6
je 0x4e23cc
mov ecx, dword [0x6f2234]
mov dl, byte [ecx + 0x1d0]
test dl, dl
jne 0x4e23cc
mov edi, 0x10000000
test edi, eax
lea eax, [esp + 0x80]
je 0x4e0da4
movss xmm0, dword [0x68ba90]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [0x68ba90]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x6c], xmm0
movaps xmm0, xmmword [esp + 0x60]
jmp 0x4e0de1
movss xmm0, dword [0x68c460]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [0x68c460]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x6c], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm2, xmmword [esp + 0x90]
movaps xmmword [esp + 0x80], xmm0
movaps xmm1, xmmword [eax]
movaps xmm0, xmm3
mulps xmm0, xmm3
movaps xmm4, xmm0
shufps xmm4, xmm0, 0xaa
movaps xmm5, xmm0
addss xmm5, xmm4
movaps xmmword [esp + 0x80], xmm5
fld dword [esp + 0x80]
fcomp dword [0x68b4fc]
shufps xmm2, xmm2, 0x39
shufps xmm2, xmm2, 0x39
movaps xmmword [esp + 0xb0], xmm1
movaps xmmword [esp + 0x1d0], xmm2
fnstsw ax
movaps xmmword [esp + 0xd0], xmm3
test ah, 0x41
jne 0x4e0e87
movaps xmm4, xmm0
shufps xmm4, xmm0, 0xaa
addss xmm0, xmm4
movaps xmmword [esp + 0x90], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x90], xmm0
movaps xmm0, xmmword [esp + 0x90]
movaps xmm4, xmm0
shufps xmm4, xmm0, 0
mulps xmm3, xmm4
movaps xmmword [esp + 0x80], xmm3
lea eax, [esp + 0x80]
jmp 0x4e0e8e
lea eax, [esp + 0xd0]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
xorps xmm3, xmm3
mov dword [esp + 0x60], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
movaps xmm4, xmmword [esp + 0x60]
movaps xmm0, xmm3
shufps xmm0, xmm4, 0x80
shufps xmm0, xmm0, 0x32
movaps xmm4, xmm0
shufps xmm4, xmm0, 0xc9
mulps xmm4, xmm2
movaps xmm5, xmm4
movaps xmm4, xmm2
shufps xmm4, xmm2, 0xc9
movaps xmm7, xmm0
mulps xmm7, xmm4
movaps xmm4, xmm7
subps xmm4, xmm5
shufps xmm4, xmm4, 0xc9
movaps xmm5, xmm3
shufps xmm5, xmm4, 0x20
shufps xmm4, xmm5, 0x24
movaps xmmword [esp + 0x1c0], xmm4
movaps xmmword [esp + 0x1f0], xmm6
movaps xmm5, xmm1
movaps xmm6, xmm0
movaps xmm4, xmm3
subss xmm4, xmm1
movss xmm5, xmm4
movaps xmm4, xmm1
shufps xmm4, xmm1, 0xaa
mulps xmm6, xmm4
movaps xmm7, xmm2
movaps xmm4, xmm1
shufps xmm4, xmm1, 0x55
mulps xmm7, xmm4
movaps xmm4, xmm1
shufps xmm4, xmm1, 0
movaps xmm1, xmm4
movaps xmm4, xmmword [esp + 0x1c0]
addps xmm7, xmm6
movaps xmm6, xmm4
mulps xmm6, xmm1
movaps xmmword [esp + 0x1e0], xmm0
movaps xmm1, xmm6
movaps xmm6, xmm5
shufps xmm6, xmm5, 0xaa
mulps xmm0, xmm6
movaps xmm6, xmm5
shufps xmm6, xmm5, 0x55
mulps xmm2, xmm6
addps xmm2, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0
mulps xmm4, xmm0
movaps xmm0, xmm4
addps xmm0, xmm2
movaps xmm2, xmm3
subss xmm2, xmm0
movaps xmm4, xmm0
maxss xmm4, xmm2
addps xmm1, xmm7
movaps xmm2, xmm3
subss xmm2, xmm1
movaps xmm5, xmm1
maxss xmm5, xmm2
maxss xmm5, xmm4
movss xmm1, xmm5
shufps xmm0, xmm0, 0xaa
movaps xmm4, xmm3
movaps xmm2, xmm1
movaps xmmword [esp + 0x80], xmm3
shufps xmm2, xmm1, 0xaa
subss xmm4, xmm0
maxss xmm0, xmm4
subss xmm3, xmm2
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x1c4]
push edx
lea eax, [esp + 0x48]
maxss xmm2, xmm3
push eax
lea ecx, [esp + 0x31c]
maxss xmm2, xmm0
shufps xmm1, xmm2, 4
push ecx
movaps xmmword [esp + 0xa0], xmm1
call fcn.004d1430
movaps xmm0, xmmword [eax]
movaps xmmword [esp + 0xf0], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0x100], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0x110], xmm0
movaps xmm0, xmmword [eax + 0x30]
mov eax, dword [ebx + 0x68]
add esp, 0x10
test eax, eax
movaps xmmword [esp + 0x110], xmm0
jl 0x4e1031
mov edx, dword [ebx + 0x6c]
mov al, byte [edx + 3]
mov byte [ebx + 0x70], al
push 0
push 0xffffffffffffffff
mov ecx, esi
call fcn.00619270
mov ecx, dword [0x6f2234]
mov edx, dword [ecx + 0xe8]
mov eax, dword [edx + 0x34]
test eax, eax
je 0x4e1058
mov al, byte [0x76cb80]
test al, al
jne 0x4e10ae
test dword [ebx + 4], edi
jne 0x4e10ae
mov al, byte [ebx + 0x70]
cmp al, 6
je 0x4e10ae
cmp al, 7
je 0x4e10ae
push 2
mov ecx, esi
call fcn.00619010
lea eax, [esp + 0x60]
push eax
mov ecx, 0x6bead0
call fcn.004d1360
push 0
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0x3c
mov byte [esp + 0x1e], 0x14
mov byte [esp + 0x1f], 0x40
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x68]
push edx
mov ecx, esi
mov word [esp + 0x6e], 0x17
call fcn.00487660
push 2
mov ecx, esi
call fcn.00619010
mov byte [esp + 0x18], 0x80
mov byte [esp + 0x19], 0x80
mov byte [esp + 0x1a], 0x80
mov byte [esp + 0x1b], 0x80
mov eax, dword [esp + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [0x6f2290]
push 5
push ecx
mov ecx, esi
call fcn.00619300
push 8
mov ecx, esi
call fcn.006192c0
mov ecx, 0x6bea84
lea eax, [esp + 0x20]
call fcn.004d1810
mov edx, dword [0x6f2234]
mov eax, dword [edx + 0xe8]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x4e1115
mov al, byte [0x76cb80]
test al, al
jne 0x4e1136
test dword [ebx + 4], edi
jne 0x4e1136
mov al, byte [ebx + 0x70]
cmp al, 6
je 0x4e1136
cmp al, 7
je 0x4e1136
mov ecx, 0x6beae4
lea eax, [esp + 0xc0]
call fcn.004d0390
mov ecx, dword [0x745844]
mov edx, dword [ecx + 0x55c]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x4e1220
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 0
push 0xa8
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 1
push 0xe
push eax
call dword [edx + 0xc8]
push 0
mov byte [esp + 0x1c], 0x80
mov byte [esp + 0x1d], 0
mov byte [esp + 0x1e], 0x80
mov byte [esp + 0x1f], 0x80
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call fcn.00487660
mov eax, dword [0x745834]
mov edx, dword [eax]
push 0
push 0xe
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 7
push 0xa8
push eax
call dword [ecx + 0xc8]
push 3
mov ecx, esi
call fcn.006192c0
mov edx, dword [ebx + 4]
movaps xmm0, xmmword [esp + 0x240]
push edx
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0xbc]
push edx
lea ecx, [esp + 0x2c0]
movaps xmmword [esp + 0xc0], xmm0
call fcn.0043d8f0
push eax
lea eax, [esp + 0x4c]
push eax
push esi
call fcn.004d9810
add esp, 0x14
push 4
mov ecx, esi
call fcn.006192c0
jmp 0x4e13e0
push 4
mov ecx, esi
call fcn.006192c0
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 1
push 0x34
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 0x10
push 0x39
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 0xffffffffffffffff
push 0x3b
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 8
push 0x38
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 3
push 0x36
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 1
push 0x35
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 3
push 0x37
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 0
push 0xa8
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 1
push 7
push eax
call dword [ecx + 0xc8]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x20], 0x80
mov byte [esp + 0x21], 0
mov byte [esp + 0x22], 0x80
mov byte [esp + 0x23], 0x80
call fcn.004d1410
mov eax, dword [0x745834]
mov ecx, dword [eax]
add esp, 8
push 1
push 7
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 7
push 0xa8
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 0xffffffffffffffff
push 0x3a
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 3
push 0x38
push eax
call dword [edx + 0xc8]
mov eax, dword [ebx + 4]
movaps xmm0, xmmword [esp + 0x240]
push eax
lea ecx, [esp + 0xe4]
push ecx
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x300]
movaps xmmword [esp + 0xc0], xmm0
call fcn.0043d8f0
push eax
lea ecx, [esp + 0x4c]
push ecx
push esi
call fcn.004d9810
mov eax, dword [0x745834]
mov edx, dword [eax]
add esp, 0x14
push 1
push 0x36
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 1
push 0x35
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 1
push 0x37
push eax
call dword [edx + 0xc8]
mov eax, dword [0x745834]
mov ecx, dword [eax]
push 0
push 0x34
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x745834]
mov edx, dword [eax]
push 8
push 0x38
push eax
call dword [edx + 0xc8]
mov eax, dword [0x6f2290]
push 5
push eax
mov ecx, esi
call fcn.00619300
test dword [ebx + 4], 0x4000000
je 0x4e1435
movaps xmm0, xmmword [esp + 0x240]
lea ecx, [esp + 0xe0]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x2dc]
movaps xmmword [esp + 0xbc], xmm0
call fcn.0043d8f0
push eax
push esi
mov ecx, ebx
call fcn.004e0080
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x4e1446
test byte [ebx + 4], 1
je 0x4e159f
mov edx, dword [0x725b2c]
and edx, 0x3f
mov eax, 0x20
sub eax, edx
cdq
xor eax, edx
sub eax, edx
shl eax, 3
cmp eax, 0x7f
jl 0x4e1468
mov eax, 0x7f
mov edx, dword [ebx + 4]
and edx, 1
mov byte [esp + 0x1b], al
mov byte [esp + 0x1a], 0
lea eax, [esp + 0x18]
je 0x4e1489
mov byte [esp + 0x18], 0
mov byte [esp + 0x19], 0x80
jmp 0x4e1493
mov byte [esp + 0x18], 0x80
mov byte [esp + 0x19], 0
test edx, edx
mov edi, dword [eax]
je 0x4e149f
movaps xmm0, xmmword [ebx + 0x20]
jmp 0x4e14af
lea eax, [esp + 0x290]
push eax
call fcn.005efd30
movaps xmm0, xmmword [eax]
movaps xmm3, xmmword [esp + 0x100]
movaps xmm1, xmmword [esp + 0x110]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
push 2
mulps xmm3, xmm2
movaps xmm2, xmmword [esp + 0xf4]
addps xmm3, xmm1
push 0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
push 8
mulps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esp + 0xec]
push edi
lea ecx, [esp + 0x30]
push ecx
mulps xmm0, xmm1
addps xmm2, xmm3
addps xmm0, xmm2
push esi
mov ecx, ebx
movaps xmmword [esp + 0x38], xmm0
call fcn.004d9f20
mov eax, dword [ebx + 0x10]
test eax, eax
lea ecx, [ebx + 0x10]
je 0x4e159f
mov edx, dword [eax + 4]
test edx, edx
js 0x4e1598
lea edx, [esp + 0x270]
push edx
mov ecx, eax
call fcn.005efd30
movaps xmm0, xmmword [eax]
movaps xmm1, xmmword [esp + 0x110]
movaps xmm3, xmmword [esp + 0x100]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
push 2
mulps xmm3, xmm2
movaps xmm2, xmmword [esp + 0xf4]
addps xmm3, xmm1
push 0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
push 8
mulps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esp + 0xec]
push edi
lea eax, [esp + 0x30]
push eax
addps xmm2, xmm3
mulps xmm0, xmm1
addps xmm0, xmm2
push esi
mov ecx, ebx
movaps xmmword [esp + 0x38], xmm0
call fcn.004d9f20
jmp 0x4e159f
push 0
call fcn.00401a50
test byte [ebx + 4], 0x10
je 0x4e1760
mov ecx, dword [0x725b2c]
and ecx, 0x3f
mov eax, 0x20
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
shl eax, 3
cmp eax, 0x7f
mov dword [esp + 0x18], eax
jl 0x4e15d2
mov dword [esp + 0x18], 0x7f
lea edi, [ebx + 0x30]
mov dword [esp + 0x20], 3
lea ecx, [ecx]
movaps xmm0, xmmword [edi]
fld dword [0x68b4fc]
movaps xmmword [esp + 0x90], xmm0
shufps xmm0, xmm0, 0xff
movaps xmmword [esp + 0xb0], xmm0
fld dword [esp + 0xb0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4e174e
movaps xmmword [esp + 0xd0], xmm0
fld dword [esp + 0xd0]
call fcn.00602090
dec eax
cmp eax, 4
ja case.0x4e162f.3
jmp dword [eax*4 + 0x4e3b18]
mov dl, byte [esp + 0x18]
mov byte [esp + 0x3c], 0
mov byte [esp + 0x3d], 0x80
mov byte [esp + 0x3e], 0
mov byte [esp + 0x3f], dl
mov eax, dword [esp + 0x3c]
mov ecx, 6
jmp 0x4e16e1
mov al, byte [esp + 0x18]
mov byte [esp + 0x7c], 0
mov byte [esp + 0x7d], 0x80
mov byte [esp + 0x7e], 0
mov byte [esp + 0x7f], al
mov eax, dword [esp + 0x7c]
mov ecx, 8
jmp 0x4e16e1
mov cl, byte [esp + 0x18]
mov byte [esp + 0x77], cl
mov byte [esp + 0x74], 0x80
mov byte [esp + 0x75], 0x80
mov byte [esp + 0x76], 0
mov eax, dword [esp + 0x74]
mov ecx, 1
jmp 0x4e16e1
mov dl, byte [esp + 0x18]
mov byte [esp + 0x5c], 0x80
mov byte [esp + 0x5d], 0x40
mov byte [esp + 0x5e], 0
mov byte [esp + 0x5f], dl
mov eax, dword [esp + 0x5c]
mov ecx, 1
jmp 0x4e16e1
mov al, byte [esp + 0x18]
mov byte [esp + 0x60], 0
mov byte [esp + 0x61], 0x80
mov byte [esp + 0x62], 0
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x60]
mov ecx, 7
movaps xmm0, xmmword [esp + 0x90]
movaps xmm1, xmmword [esp + 0x110]
movaps xmm3, xmmword [esp + 0x100]
push ecx
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
mulps xmm3, xmm2
movaps xmm2, xmmword [esp + 0xf4]
addps xmm3, xmm1
push 0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
push 8
mulps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esp + 0xec]
push eax
lea ecx, [esp + 0x370]
push ecx
addps xmm2, xmm3
mulps xmm0, xmm1
addps xmm0, xmm2
push esi
mov ecx, ebx
movaps xmmword [esp + 0x378], xmm0
call fcn.004d9f20
mov eax, dword [esp + 0x20]
add edi, 0x10
dec eax
mov dword [esp + 0x20], eax
jne 0x4e15e0
push 2
mov ecx, esi
call fcn.00619010
mov byte [esp + 0x60], 0x80
mov byte [esp + 0x61], 0x80
mov byte [esp + 0x62], 0x80
mov byte [esp + 0x63], 0x80
mov edx, dword [esp + 0x60]
mov dword [esi + 4], edx
mov eax, dword [0x6f2290]
push 5
push eax
mov ecx, esi
call fcn.00619300
movsx eax, word [esp + 0x44]
movsx ecx, word [esp + 0x42]
cdq
sub eax, edx
sar eax, 1
add eax, 0xf
mov dword [esp + 0x20], eax
movsx eax, word [esp + 0x46]
fild dword [esp + 0x20]
cdq
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov al, byte [0x76cb38]
test al, al
movss dword [esp + 0x60], xmm0
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x6c], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x40], xmm0
jne 0x4e18e3
movaps xmm0, xmmword [esp + 0x1e0]
movaps xmm1, xmmword [esp + 0x1c0]
movaps xmm2, xmmword [esp + 0x80]
shufps xmm0, xmm0, 0xaa
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x360], xmm0
movss xmm0, dword [esp + 0x360]
movss dword [esp + 0x20], xmm0
shufps xmm1, xmm1, 0xaa
movaps xmmword [esp + 0xb0], xmm1
movss xmm0, dword [esp + 0xb0]
movss dword [esp + 0x24], xmm0
subss xmm2, xmm1
movaps xmmword [esp + 0xd0], xmm2
movss xmm0, dword [esp + 0xd0]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
movaps xmmword [esp + 0x90], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x68b58c]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
jmp 0x4e19b7
movss xmm0, dword [0x68b500]
movaps xmm1, xmmword [esp + 0x80]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
movaps xmmword [esp + 0x90], xmm0
movaps xmm0, xmmword [esp + 0x1e0]
shufps xmm0, xmm0, 0xaa
movaps xmm2, xmm1
subss xmm2, xmm0
movaps xmmword [esp + 0x80], xmm2
movaps xmm2, xmmword [esp + 0x1c0]
movaps xmmword [esp + 0x360], xmm0
movss xmm0, dword [esp + 0x360]
movaps xmm3, xmm2
movss dword [esp + 0x20], xmm0
shufps xmm3, xmm2, 0xaa
subss xmm1, xmm3
movaps xmmword [esp + 0xb0], xmm1
movss xmm0, dword [esp + 0xb0]
movss dword [esp + 0x24], xmm0
movaps xmmword [esp + 0xd0], xmm1
movss xmm0, dword [esp + 0xd0]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x80]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
mov edi, dword [esp + 0x38]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x94]
push eax
mov esi, 0x6bedd8
mov ecx, 0x6bedd0
movaps xmmword [esp + 0x88], xmm0
call fcn.004d1c10
mov esi, dword [esp + 0x40]
add esp, 8
lea edi, [esp + 0x80]
call fcn.004d20c0
mov eax, dword [0x76ba40]
test eax, eax
je 0x4e1bf1
mov ecx, dword [eax + 0xb38]
xor esi, esi
test ecx, ecx
jle 0x4e1bf1
mov edi, dword [esp + 0x38]
mov dword [esp + 0x20], 0xb28
jmp 0x4e1a20
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax]
test eax, eax
je 0x4e1bd0
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4e1bd0
lea edx, [esp + 0x250]
push edx
call fcn.005efd30
movaps xmm0, xmmword [eax]
mov ecx, dword [0x725b2c]
movaps xmm1, xmmword [esp + 0x110]
movaps xmm3, xmmword [esp + 0x100]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
and ecx, 0x3f
mov eax, 0x20
sub eax, ecx
mulps xmm3, xmm2
movaps xmm2, xmmword [esp + 0xf0]
addps xmm3, xmm1
cdq
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
xor eax, edx
mulps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esp + 0xe0]
sub eax, edx
shl eax, 3
cmp eax, 0x7f
addps xmm2, xmm3
mulps xmm0, xmm1
addps xmm0, xmm2
movaps xmmword [esp + 0x90], xmm0
jl 0x4e1abb
mov eax, 0x7f
mov edx, dword [0x6f2234]
cmp dword [edx + 0x380], 0x81
mov ecx, dword [0x744b70]
movzx ecx, byte [esi + ecx + 5]
jne 0x4e1b32
sub ecx, 0
je 0x4e1b0f
dec ecx
je 0x4e1bd0
push 1
push 0
mov byte [esp + 0x6b], al
mov byte [esp + 0x68], 0xb2
mov byte [esp + 0x69], 0xb2
mov byte [esp + 0x6a], 0xb2
mov edx, dword [esp + 0x68]
push 8
push edx
lea eax, [esp + 0xa0]
push eax
jmp 0x4e1bc8
push 1
push 0
mov byte [esp + 0x64], 0x14
mov byte [esp + 0x65], 0x14
mov byte [esp + 0x66], 0x78
mov byte [esp + 0x67], al
mov ecx, dword [esp + 0x64]
push 8
push ecx
jmp 0x4e1bc0
cmp ecx, 3
ja case.default.0x4e1b37
jmp dword [ecx*4 + 0x4e3b2c]
mov byte [esp + 0x74], 0x60
mov byte [esp + 0x75], 0xa
mov byte [esp + 0x76], 0xa
mov byte [esp + 0x77], al
mov eax, dword [esp + 0x74]
jmp 0x4e1bb9
mov byte [esp + 0x7c], 0x14
mov byte [esp + 0x7d], 0x14
mov byte [esp + 0x7e], 0x78
mov byte [esp + 0x7f], al
mov eax, dword [esp + 0x7c]
jmp 0x4e1bb9
mov byte [esp + 0x18], 0x80
mov byte [esp + 0x19], 0x2a
mov byte [esp + 0x1a], 0x80
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x18]
jmp 0x4e1bb9
mov byte [esp + 0x3c], 0x80
mov byte [esp + 0x3d], 0x50
mov byte [esp + 0x3e], 1
mov byte [esp + 0x3f], al
mov eax, dword [esp + 0x3c]
jmp 0x4e1bb9
mov byte [esp + 0x40], 0x80
mov byte [esp + 0x41], 0x80
mov byte [esp + 0x42], 0x80
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x40]
push 1
push 0
push 8
push eax
lea edx, [esp + 0xa0]
push edx
mov ecx, ebx
push edi
call fcn.004d9f20
mov edx, dword [esp + 0x20]
mov eax, dword [0x76ba40]
mov ecx, dword [eax + 0xb38]
inc esi
add edx, 4
cmp esi, ecx
mov dword [esp + 0x20], edx
jl 0x4e1a20
jmp 0x4e1bf5
mov edi, dword [esp + 0x38]
mov esi, 0x180
mov dword [esp + 0x20], esi
mov edi, edi
mov eax, dword [0x6f2234]
mov ecx, dword [esi + eax]
add esi, eax
test ecx, ecx
je 0x4e1d53
mov eax, dword [ecx + 4]
test eax, eax
jns 0x4e1c56
mov eax, ecx
test eax, eax
je 0x4e1d53
xor ecx, ecx
mov cx, word [eax + 0xa]
test cx, cx
lea edx, [ecx - 1]
mov word [eax + 0xa], dx
jne 0x4e1c4b
mov eax, dword [eax + 0x5c]
push 0xae
push 0x68b520
push eax
call fcn.00620150
add esp, 0xc
mov dword [esi], 0
jmp 0x4e1d53
lea edx, [esp + 0x280]
push edx
call fcn.005efd30
movaps xmm0, xmmword [eax]
mov ecx, dword [0x725b2c]
movaps xmm1, xmmword [esp + 0x110]
movaps xmm3, xmmword [esp + 0x100]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
and ecx, 0x3f
mov eax, 0x20
sub eax, ecx
mulps xmm3, xmm2
movaps xmm2, xmmword [esp + 0xf0]
addps xmm3, xmm1
cdq
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
xor eax, edx
mulps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esp + 0xe0]
sub eax, edx
shl eax, 3
cmp eax, 0x7f
addps xmm2, xmm3
mulps xmm0, xmm1
addps xmm0, xmm2
movaps xmmword [esp + 0x360], xmm0
jl 0x4e1cd7
mov eax, 0x7f
mov ecx, dword [0x76ba40]
test ecx, ecx
je 0x4e1d25
mov edx, dword [0x6f2234]
cmp dword [edx + 0x380], 0x82
jne 0x4e1d0c
mov byte [esp + 0x40], 0
mov byte [esp + 0x41], 0x80
mov byte [esp + 0x42], 0x80
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x40]
jmp 0x4e1d3c
mov byte [esp + 0x60], 0x50
mov byte [esp + 0x61], 0x50
mov byte [esp + 0x62], 0x50
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x60]
jmp 0x4e1d3c
mov byte [esp + 0x5c], 0x80
mov byte [esp + 0x5d], 0
mov byte [esp + 0x5e], 0
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x5c]
push 1
push 0
push 8
push eax
lea eax, [esp + 0x370]
push eax
push edi
mov ecx, ebx
call fcn.004d9f20
mov esi, dword [esp + 0x20]
add esi, 4
cmp esi, 0x1a0
mov dword [esp + 0x20], esi
jl 0x4e1c00
test dword [ebx + 4], 0x10000000
jne 0x4e23cc
mov ecx, dword [0x6f2258]
test ecx, ecx
je 0x4e1d8a
call fcn.004f1d10
mov edi, eax
jmp 0x4e1d8c
xor edi, edi
test edi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], 0
je 0x4e1ec4
xor edx, edx
lea ecx, [edi + 0x40]
jmp 0x4e1db0
mov esi, dword [ecx]
cmp byte [esi + 0x17], 2
jbe 0x4e1e39
movaps xmm1, xmmword [esi]
subps xmm1, xmmword [esp + 0x240]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x360], xmm0
fld dword [esp + 0x360]
fcomp dword [0x68fdb4]
fnstsw ax
test ah, 5
jp 0x4e1e39
mulps xmm1, xmmword [esp + 0x230]
movaps xmm0, xmm1
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0xb0], xmm0
fld dword [esp + 0xb0]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 0x41
je 0x4e1e48
inc edx
add ecx, 4
cmp edx, 2
jl 0x4e1db0
jmp 0x4e1ea0
push edi
mov ecx, esi
call fcn.00546650
mov cx, word [eax + 0x48]
cmp cx, word [edi + 0x48]
mov dword [esp + 0x3c], eax
je 0x4e1e74
cmp dword [eax + 0x44], esi
jne 0x4e1ea0
mov eax, dword [eax + 0x4c]
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 1]
sub eax, edx
test eax, eax
jg 0x4e1ea0
push edi
mov ecx, esi
call fcn.005466b0
mov cx, word [eax + 0x48]
cmp cx, word [edi + 0x48]
mov dword [esp + 0x3c], eax
je 0x4e1e98
test byte [esi + 0x16], 8
je 0x4e1ea0
mov edx, dword [edi + 0x4c]
test byte [edx], 4
jne 0x4e1ea0
mov dword [esp + 0x3c], 0
cmp word [edi + 0x48], 0
jne 0x4e1ead
xor edi, edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4e1ec4
cmp word [eax + 0x48], 0
jne 0x4e1ec4
mov dword [esp + 0x3c], 0
mov esi, dword [0x725b2c]
mov edx, dword [ebx + 0x9c]
mov eax, dword [ebx + 0x98]
sub esi, edx
test al, 2
mov dword [esp + 0x40], eax
je 0x4e1efb
cmp esi, 0xf
jl 0x4e1f62
and eax, 0xfffffffd
mov dword [ebx + 0x68], 0xffffffff
mov dword [ebx + 0x98], eax
jmp 0x4e1f62
test al, 1
je 0x4e1f0f
cmp esi, 0xf
jl 0x4e1f62
and eax, 0xfffffffe
mov dword [ebx + 0x98], eax
jmp 0x4e1f62
test edi, edi
je 0x4e1f62
mov eax, dword [ebx + 0x68]
test eax, eax
lea ecx, [ebx + 0x68]
jge 0x4e1f3d
movzx eax, word [edi + 0x48]
mov dword [ecx], eax
mov edx, dword [edi + 0x4c]
mov dword [ecx + 4], edx
or dword [ebx + 0x98], 1
mov eax, dword [0x725b2c]
mov dword [ebx + 0x9c], eax
jmp 0x4e1f60
push edi
call fcn.004d11d0
test al, al
je 0x4e1f62
mov eax, dword [esp + 0x40]
or eax, 2
mov dword [ebx + 0x98], eax
mov ecx, dword [0x725b2c]
mov dword [ebx + 0x9c], ecx
xor esi, esi
mov ecx, dword [ebx + 0x68]
test ecx, ecx
lea eax, [ebx + 0x68]
jl 0x4e20e7
mov edx, dword [0x6f2234]
mov ecx, dword [edx + 0xe8]
mov edx, dword [ecx + 0x34]
test edx, edx
je 0x4e1f91
mov cl, byte [0x76cb80]
test cl, cl
jne 0x4e20e7
push eax
lea edx, [esp + 0x38d]
push edx
mov byte [esp + 0x390], 5
call fcn.00487310
mov eax, dword [ebx + 0x98]
add esp, 8
test al, 1
je 0x4e1fcc
shl esi, 7
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4e1ff4
test al, 2
je 0x4e1fef
mov ecx, 0xf
sub ecx, esi
shl ecx, 7
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4e1ff4
mov eax, 0x80
mov edi, dword [esp + 0x38]
mov byte [esp + 0x43], al
mov byte [esp + 0x40], 0x60
mov byte [esp + 0x41], 0x60
mov byte [esp + 0x42], 0x60
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x389]
mov dword [edi + 4], eax
push ecx
mov ecx, dword [0x6f2274]
call fcn.0060b660
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [0x68faf8]
fcom dword [0x68b5a8]
fnstsw ax
test ah, 0x41
jne 0x4e2048
fdivr dword [0x68fdb0]
jmp 0x4e2050
fstp st(0)
fld dword [0x68faf8]
fmul dword [0x6c6928]
mov eax, dword [0x6f2274]
movsx ecx, word [esp + 0xc0]
push 0xffffffffffffffff
fstp dword [esp + 0x44]
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [0x68faf8]
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x44]
movaps xmmword [eax + 0x20], xmm0
or byte [eax + 0x32], 1
movsx eax, word [esp + 0xc8]
lea edx, [esp + 0x38c]
push edx
cdq
sub eax, edx
sar eax, 1
push 0x3f800000
add eax, ecx
push 0x41a00000
mov dword [esp + 0x50], eax
push ecx
fild dword [esp + 0x54]
mov ecx, dword [0x6f2274]
fstp dword [esp]
push edi
call fcn.0060bf50
jmp 0x4e20eb
mov edi, dword [esp + 0x38]
mov esi, dword [0x725b2c]
mov edx, dword [ebx + 0xac]
mov eax, dword [ebx + 0xa8]
sub esi, edx
test al, 2
mov dword [esp + 0x40], eax
je 0x4e2125
cmp esi, 0xf
jl 0x4e21a0
and eax, 0xfffffffd
mov dword [ebx + 0x60], 0xffffffff
mov dword [ebx + 0xa8], eax
jmp 0x4e21a0
test al, 1
je 0x4e2139
cmp esi, 0xf
jl 0x4e21a0
and eax, 0xfffffffe
mov dword [ebx + 0xa8], eax
jmp 0x4e21a0
mov edx, dword [ebx + 0x60]
test edx, edx
lea ecx, [ebx + 0x60]
jl 0x4e2177
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4e21a0
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4e2161
push edx
call fcn.004d11d0
test al, al
je 0x4e21a0
mov eax, dword [esp + 0x40]
or eax, 2
mov dword [ebx + 0xa8], eax
mov eax, dword [0x725b2c]
mov dword [ebx + 0xac], eax
jmp 0x4e219e
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4e21a0
movzx edx, word [eax + 0x48]
mov dword [ecx], edx
mov eax, dword [eax + 0x4c]
mov dword [ecx + 4], eax
or dword [ebx + 0xa8], 1
mov ecx, dword [0x725b2c]
mov dword [ebx + 0xac], ecx
xor esi, esi
mov ecx, dword [ebx + 0x60]
test ecx, ecx
lea eax, [ebx + 0x60]
jl 0x4e23c3
mov edx, dword [0x6f2234]
mov ecx, dword [edx + 0xe8]
mov edx, dword [ecx + 0x34]
test edx, edx
je 0x4e21cf
mov cl, byte [0x76cb80]
test cl, cl
jne 0x4e23c3
push eax
lea edx, [esp + 0x38d]
push edx
mov byte [esp + 0x390], 5
call fcn.00487310
mov eax, dword [ebx + 0xa8]
add esp, 8
test al, 1
je 0x4e220e
shl esi, 7
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x60], eax
jmp 0x4e223d
test al, 2
je 0x4e2235
mov ecx, 0xf
sub ecx, esi
shl ecx, 7
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x60], eax
jmp 0x4e223d
mov dword [esp + 0x60], 0x80
push 2
mov ecx, edi
call fcn.00619010
mov eax, dword [esp + 0x60]
cdq
sub eax, edx
sar eax, 1
mov byte [esp + 0x43], al
mov byte [esp + 0x40], 0x60
mov byte [esp + 0x41], 0x60
mov byte [esp + 0x42], 0x60
mov ecx, dword [esp + 0x40]
push eax
mov dword [edi + 4], ecx
push 7
mov ecx, edi
call fcn.00619270
mov edx, dword [0x6f2290]
push 5
push edx
mov ecx, edi
call fcn.00619300
mov al, byte [ebx + 0x70]
cmp al, 6
je 0x4e228e
cmp al, 7
jne 0x4e22a1
mov ecx, 0x6beb1c
lea eax, [esp + 0xa0]
mov esi, edi
call fcn.004d0390
mov ecx, 0x6beb14
lea eax, [esp + 0x358]
mov esi, edi
call fcn.004d0390
mov ecx, dword [0x6f2274]
lea eax, [esp + 0x389]
push eax
call fcn.0060b660
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x6beed0]
fcom dword [0x68fdac]
fnstsw ax
test ah, 0x41
jne 0x4e22f0
fdivr dword [0x6beed0]
fmul dword [0x68fdac]
jmp 0x4e22f8
fstp st(0)
fld dword [0x6beed0]
fmul dword [0x6c6928]
mov eax, dword [0x6f2274]
mov cl, byte [esp + 0x60]
push 0xffffffffffffffff
fstp dword [esp + 0x24]
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0xac], xmm0
movss xmm0, dword [0x6beed0]
movss dword [esp + 0xb0], xmm0
movaps xmm0, xmmword [esp + 0xa4]
movaps xmmword [eax + 0x20], xmm0
or byte [eax + 0x32], 1
lea eax, [esp + 0x38c]
push eax
movsx eax, word [esp + 0x364]
mov byte [esp + 0x4b], cl
movsx ecx, word [esp + 0x360]
mov byte [esp + 0x48], 0x80
mov byte [esp + 0x49], 0x80
mov byte [esp + 0x4a], 0x80
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
cdq
sub eax, edx
sar eax, 1
push 0x3f800000
add eax, ecx
push 0x42340000
mov dword [esp + 0x30], eax
push ecx
fild dword [esp + 0x34]
mov ecx, dword [0x6f2274]
fstp dword [esp]
push edi
call fcn.0060bf50
mov eax, dword [0x6f2274]
and byte [eax + 0x32], 0xfe
mov eax, dword [0x6f2274]
and byte [eax + 0x32], 0xfe
mov al, byte [ebx + 0x75]
test al, al
je 0x4e245a
mov edx, dword [ebx + 0x78]
mov eax, dword [ebx + 0x7c]
push edx
push eax
push 0x10
lea ecx, [esp + 0x36c]
push str._c_d__d
push ecx
call fcn.00671a9a
call fcn.006183e0
sub eax, 8
push 0
push eax
call fcn.004d1260
push 0
push 0xe
mov si, ax
call fcn.004d12e0
mov edx, dword [0x6bea40]
mov ecx, dword [esp + 0x5c]
add esp, 0x24
mov dword [ecx + 4], edx
push 0xffffffffffffffff
movsx eax, ax
lea edx, [esp + 0x364]
push edx
mov dword [esp + 0x28], eax
push 0x3f800000
fild dword [esp + 0x2c]
sub esp, 8
movsx edx, si
fstp dword [esp + 4]
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fstp dword [esp]
push ecx
mov ecx, dword [0x6f225c]
call fcn.0060bf50
mov eax, dword [ebx + 4]
test eax, 0x80000
mov edi, dword [esp + 0x38]
je 0x4e2762
test al, 2
je 0x4e2762
mov eax, dword [0x6f2234]
mov ecx, dword [eax + 0x200]
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, esi
imul edx, edx, 0xe10
sub ecx, edx
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
push edi
push esi
lea eax, [esp + 0x360]
push 0x68fd98
push eax
mov dword [esp + 0x70], 0x80
mov dword [esp + 0x50], 0x3f800000
call fcn.00671a9a
add esp, 0x10
lea ecx, [esp + 0x358]
push ecx
mov ecx, dword [0x6f225c]
call fcn.0060b660
test esi, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fstp dword [esp + 0x5c]
jne 0x4e2596
test edi, edi
jne 0x4e2596
mov al, byte [ebx + 0x71]
test al, al
je 0x4e259a
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x4e2530
mov dword [ebx + 0x218], 2
mov edx, dword [0x725b2c]
mov dword [ebx + 0x21c], edx
mov eax, dword [0x725b2c]
sub eax, dword [ebx + 0x21c]
cmp eax, 0x3c
mov dword [esp + 0x20], eax
jl 0x4e255f
mov eax, dword [ebx + 4]
and eax, 0xfffffffd
mov dword [esp + 0x60], 0
mov dword [esp + 0x40], 0x40c00000
mov dword [ebx + 4], eax
jmp 0x4e259a
fild dword [esp + 0x20]
mov ecx, 0x3c
sub ecx, eax
shl ecx, 7
fmul dword [0x68d85c]
mov eax, 0x88888889
imul ecx
fadd dword [0x68b500]
fstp dword [esp + 0x40]
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x60], eax
jmp 0x4e259a
mov byte [ebx + 0x71], 1
mov eax, dword [0x6f2234]
test byte [eax + 0x268], 4
je 0x4e25ba
mov ecx, dword [0x725b2c]
and ecx, 0x1f
cmp cl, 9
jle 0x4e275e
cmp dword [eax + 0x380], 0x7d
jne 0x4e25de
mov edx, dword [0x6bee74]
mov ecx, dword [0x6bee70]
mov edi, dword [0x6bee78]
mov dword [esp + 0xa4], edx
jmp 0x4e2617
call fcn.006183f0
fld dword [esp + 0x5c]
fmul dword [esp + 0x40]
mov esi, eax
sub esi, 0x18
mov dword [0x6bee68], esi
fmul dword [0x68c45c]
call fcn.00602090
mov edi, dword [0x6bee6c]
movsx ecx, ax
add ecx, dword [0x6bee64]
mov dword [esp + 0xa4], esi
fld dword [esp + 0x40]
mov eax, dword [0x6f225c]
fmul dword [0x6c692c]
mov esi, dword [esp + 0x38]
mov byte [esp + 0x40], 0
mov byte [esp + 0x41], 0
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0xc4], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0xc8], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0xcc], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [eax + 0x20], xmm0
or byte [eax + 0x32], 1
mov al, byte [esp + 0x60]
mov byte [esp + 0x43], al
mov byte [esp + 0x42], 0
mov edx, dword [esp + 0x40]
push edi
push ecx
mov dword [esi + 4], edx
call fcn.004d1260
mov word [esp + 0x28], ax
mov eax, dword [esp + 0xac]
push edi
push eax
call fcn.004d12e0
movsx ecx, word [esp + 0x30]
add esp, 0x10
movsx eax, ax
push 0xffffffffffffffff
mov dword [esp + 0x60], eax
lea edx, [esp + 0x35c]
push edx
add eax, 2
mov dword [esp + 0x28], eax
push 0x3f800000
fild dword [esp + 0x2c]
mov dword [esp + 0x80], ecx
sub esp, 8
add ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [0x6f225c]
fstp dword [esp + 4]
fild dword [esp + 0x34]
fstp dword [esp]
push esi
call fcn.0060bf50
fild dword [esp + 0x5c]
mov al, byte [esp + 0x60]
push 0xffffffffffffffff
lea edx, [esp + 0x35c]
push edx
push 0x3f800000
sub esp, 8
fstp dword [esp + 4]
mov byte [esp + 0x57], al
fild dword [esp + 0x88]
mov byte [esp + 0x54], 0x80
mov byte [esp + 0x55], 0x80
mov byte [esp + 0x56], 0x80
mov ecx, dword [esp + 0x54]
fstp dword [esp]
mov dword [esi + 4], ecx
mov ecx, dword [0x6f225c]
push esi
call fcn.0060bf50
mov eax, dword [0x6f225c]
and byte [eax + 0x32], 0xfe
mov edi, dword [esp + 0x38]
test dword [ebx + 4], 0x200000
je 0x4e295c
mov esi, dword [esp + 0x1c]
cmp byte [esi + 8], 1
jne 0x4e2785
mov eax, dword [esi + 0x1e0]
mov dword [esp + 0x20], eax
jmp 0x4e278d
mov dword [esp + 0x20], 0x42c80000
mov edx, dword [esp + 0x20]
lea ecx, [ebx + 0xc8]
push ecx
push edx
push edi
call fcn.004d5cb0
add esp, 0xc
mov ecx, esi
call fcn.005ef730
cmp byte [eax + 8], 2
lea eax, [ebx + 0xb8]
je 0x4e27e8
mov ecx, dword [eax]
test ecx, ecx
jne 0x4e27d1
mov edx, dword [ebx + 0xd8]
test edx, edx
jne 0x4e27cd
mov dword [eax], 0x20
jmp 0x4e283a
test ecx, ecx
je 0x4e27d6
cmp ecx, 2
jne 0x4e283a
mov dword [eax], 1
mov dword [ebx + 0xd8], 2
jmp 0x4e2822
cmp dword [eax], 0
jne 0x4e2803
mov ecx, dword [ebx + 0xd8]
test ecx, ecx
jne 0x4e2803
mov dword [ebx + 0xd8], 0x20
jmp 0x4e283a
mov ecx, dword [ebx + 0xd8]
test ecx, ecx
je 0x4e2812
cmp ecx, 2
jne 0x4e283a
mov dword [eax], 2
mov dword [ebx + 0xd8], 1
mov ecx, dword [0x725b2c]
mov dword [ebx + 0xdc], ecx
mov edx, dword [0x725b2c]
mov dword [ebx + 0xbc], edx
cmp dword [eax], 0
je 0x4e2880
push eax
mov eax, dword [0x6f2234]
mov ecx, dword [eax + 0x3a4]
fild dword [eax + 0x3a4]
test ecx, ecx
jge 0x4e285b
fadd dword [0x68b6cc]
mov edx, dword [eax + 0x3a8]
fild dword [eax + 0x3a8]
test edx, edx
jge 0x4e2871
fadd dword [0x68b6cc]
fsubp st(1)
push ecx
fstp dword [esp]
push edi
call fcn.004d47a0
add esp, 0xc
mov eax, dword [ebx + 0xd8]
test eax, eax
lea esi, [ebx + 0xd8]
je 0x4e28da
lea eax, [esp + 0x358]
push eax
mov ecx, 0x6bebe8
call fcn.004d1360
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x1360]
lea ecx, [ebx + 0xe8]
push ecx
push esi
push eax
lea ecx, [esp + 0x364]
push ecx
push edi
mov word [esp + 0x36c], 0x20
mov word [esp + 0x36e], 0x10
call fcn.004d7080
add esp, 0x14
mov edx, dword [0x6f2234]
cmp dword [edx + 0x380], 0x7f
jne 0x4e295c
mov eax, dword [esp + 0x1c]
cmp byte [eax + 9], 3
jne 0x4e295c
movsx ecx, word [eax + 0xe52]
test ecx, ecx
movsx edx, word [eax + 0xe50]
lea eax, [ebx + 0x148]
jne 0x4e2918
test byte [eax], 8
jne 0x4e293b
mov dword [eax], 0x29
jmp 0x4e292f
cmp ecx, edx
jge 0x4e2924
mov dword [eax], 0x20
jmp 0x4e293b
test byte [eax], 0x20
je 0x4e293b
mov dword [eax], 2
mov esi, dword [0x725b2c]
mov dword [ebx + 0x14c], esi
lea esi, [ebx + 0x158]
push esi
push eax
push edx
push ecx
push edi
mov byte [0x6ebbc8], 1
call fcn.004d7fa0
add esp, 0x14
mov byte [0x6ebbc8], 0
mov eax, dword [ebx + 4]
test al, 0x11
je 0x4e2bcc
lea ecx, [esp + 0x358]
push ecx
mov ecx, 0x6bec40
call fcn.004d1360
test byte [ebx + 4], 1
mov word [esp + 0x358], 0x2c
mov word [esp + 0x35a], 0x54
je 0x4e29f7
mov ecx, dword [0x6f2258]
lea edx, [esp + 0x2a0]
push edx
call fcn.005efd30
movaps xmm1, xmmword [eax]
movaps xmm0, xmmword [ebx + 0x20]
subps xmm0, xmm1
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
addss xmm0, xmm1
movaps xmmword [esp + 0x80], xmm0
sqrtss xmm0, xmm0
movss dword [esp + 0x80], xmm0
movaps xmm0, xmmword [esp + 0x80]
movaps xmmword [esp + 0x80], xmm0
fld dword [esp + 0x80]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x60], eax
jmp 0x4e2a05
fld dword [0x68bac0]
mov dword [esp + 0x60], 0x7e967699
test byte [ebx + 4], 0x10
je 0x4e2adc
lea esi, [ebx + 0x30]
mov edi, 3
jmp 0x4e2a20
movaps xmm0, xmmword [esi]
fld dword [0x68b4fc]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xff
movaps xmmword [esp + 0x360], xmm1
fld dword [esp + 0x360]
fucompp
movaps xmmword [esp + 0xb0], xmm0
fnstsw ax
test ah, 0x44
jnp 0x4e2ace
lea ecx, [esp + 0x260]
fstp st(0)
push ecx
mov ecx, dword [0x6f2258]
call fcn.005efd30
movaps xmm1, xmmword [eax]
movaps xmm0, xmmword [esp + 0xb0]
subps xmm0, xmm1
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
addss xmm0, xmm1
movaps xmmword [esp + 0x80], xmm0
sqrtss xmm0, xmm0
movss dword [esp + 0x80], xmm0
movaps xmm0, xmmword [esp + 0x80]
movaps xmmword [esp + 0x90], xmm0
fld dword [esp + 0x90]
fld dword [esp + 0x90]
fcomp dword [esp + 0x60]
fnstsw ax
test ah, 5
jp 0x4e2ace
mov edx, dword [esp + 0x90]
mov dword [esp + 0x60], edx
add esi, 0x10
dec edi
jne 0x4e2a20
mov edi, dword [esp + 0x38]
fld dword [0x68b4fc]
fld dword [ebx + 0x80]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4e2af9
fstp dword [ebx + 0x80]
jmp 0x4e2afb
fstp st(0)
mov eax, dword [0x6f2290]
push 5
push eax
mov ecx, edi
call fcn.00619300
push 2
mov ecx, edi
call fcn.00619010
xor esi, esi
push esi
mov byte [esp + 0x44], 0x60
mov byte [esp + 0x45], 0x60
mov byte [esp + 0x46], 0x60
mov byte [esp + 0x47], 0x80
mov ecx, dword [esp + 0x44]
push 0x6bec54
lea edx, [esp + 0x360]
mov dword [edi + 4], ecx
push edx
mov ecx, edi
call fcn.004d0d10
fld dword [esp + 0x60]
fdiv dword [ebx + 0x80]
fld dword [0x68b500]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4e2b66
fstp st(0)
fld dword [0x68b500]
movsx eax, word [esp + 0x35e]
sub eax, 6
mov dword [esp + 0x20], eax
mov word [esp + 0xc0], 0x27
fild dword [esp + 0x20]
fmul st(1)
call fcn.00602090
fstp st(0)
mov cx, word [0x6bec60]
mov dx, word [0x6bec62]
push esi
push 0x6bec5c
mov word [esp + 0xcc], cx
add eax, 0x4e
mov word [esp + 0xca], ax
lea eax, [esp + 0xc8]
push eax
mov ecx, edi
mov word [esp + 0xd2], dx
call fcn.004d0d10
jmp 0x4e2bce
xor esi, esi
test dword [ebx + 4], 0x2000000
je 0x4e2be6
mov ecx, dword [esp + 0x1c]
call fcn.005ef730
cmp byte [eax + 8], 2
je 0x4e2bf1
mov al, byte [ebx + 0x76]
test al, al
je 0x4e2d83
mov eax, dword [ebx + 4]
and eax, 0x2000000
lea ecx, [ebx + 0xf8]
je 0x4e2c09
mov dword [ecx], 0x20
jmp 0x4e2c20
cmp dword [ecx], 0x20
jne 0x4e2c20
mov dword [ecx], 2
mov edx, dword [0x725b2c]
mov dword [ebx + 0xfc], edx
cmp eax, esi
jne 0x4e2c34
mov al, byte [ebx + 0x76]
test al, al
jne 0x4e2c34
mov byte [ebx + 0x76], 0
jmp 0x4e31a0
lea eax, [ebx + 0x228]
push eax
push ecx
mov ecx, dword [0x6f2234]
mov edx, dword [ecx + 0x1f4]
push edx
push edi
call fcn.004d8c40
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x8c]
lea eax, [ebx + 0x248]
push eax
lea esi, [ebx + 0x2c8]
push esi
push ecx
push edx
push edi
call fcn.004d8950
mov eax, dword [ebx + 0x8c]
mov ecx, dword [ebx + 0x88]
add esp, 0x24
cmp eax, ecx
jge 0x4e2cac
mov ecx, eax
shl ecx, 4
lea ecx, [ecx + ebx + 0x248]
cmp dword [ecx], 1
je 0x4e2c9e
lea edx, [eax + 1]
mov dword [ebx + 0x8c], edx
mov edx, dword [ebx + 0x88]
inc eax
add ecx, 0x10
cmp eax, edx
jl 0x4e2c90
mov eax, dword [ebx + 0x84]
cmp dword [ebx + 0x8c], eax
jne 0x4e2d54
shl eax, 4
mov ecx, dword [eax + ebx + 0x238]
test ecx, ecx
jne 0x4e2d58
mov eax, dword [esi]
test eax, eax
jne 0x4e2d38
mov cl, byte [ebx + 0x77]
test cl, cl
jne 0x4e2d38
push 0x3f800000
push 0x3f800000
push 0x6b
mov byte [ebx + 0x77], 1
call fcn.004cfe40
mov eax, dword [ebx + 0x84]
add esp, 0xc
xor ecx, ecx
test eax, eax
jle 0x4e2d30
lea eax, [ebx + 0x24c]
mov edx, 0x401
lea esp, [esp]
mov dword [eax - 4], edx
mov edi, dword [0x725b2c]
mov dword [eax], edi
mov dword [eax + 8], 5
mov edi, dword [ebx + 0x84]
inc ecx
add eax, 0x10
cmp ecx, edi
jl 0x4e2d10
mov dword [esi], 0x20
jmp 0x4e2d58
cmp eax, 0x20
jne 0x4e2d58
mov byte [ebx + 0x77], 1
mov dword [esi], 2
mov eax, dword [0x725b2c]
mov dword [ebx + 0x2cc], eax
jmp 0x4e2d58
mov byte [ebx + 0x77], 0
test dword [ebx + 4], 0x2000000
jne 0x4e3198
mov eax, dword [ebx + 0xf8]
test eax, eax
jne 0x4e3198
cmp dword [esi], 0
jne 0x4e3198
xor eax, eax
jmp 0x4e319d
test dword [ebx + 4], 0x200000
je 0x4e313a
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xb50]
cmp eax, esi
je 0x4e313a
mov cl, byte [eax + 8]
cmp cl, 1
je 0x4e2db3
cmp cl, 9
jne 0x4e313a
mov dword [esp + 0x180], 0x7153
mov dword [esp + 0x184], esi
mov dword [esp + 0x188], esi
mov dword [esp + 0x18c], esi
mov dword [esp + 0x190], esi
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], esi
mov dword [esp + 0x19c], esi
mov ecx, dword [eax]
cmp ecx, esi
je 0x4e313a
lea edx, [esp + 0x180]
push edx
push 0xb
push eax
call ecx
add esp, 0xc
cmp eax, esi
je 0x4e313a
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xb50]
mov dword [esp + 0x120], 0x7150
mov dword [esp + 0x124], esi
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], esi
mov dword [esp + 0x130], esi
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], esi
mov ecx, dword [eax]
cmp ecx, esi
je 0x4e2e73
lea edx, [esp + 0x120]
push edx
push 0xb
push eax
call ecx
add esp, 0xc
mov esi, eax
xor edx, edx
jmp 0x4e2e77
xor edx, edx
xor esi, esi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xb50]
mov dword [esp + 0x160], 0x7151
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], edx
mov dword [esp + 0x16c], edx
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], edx
mov dword [esp + 0x178], edx
mov dword [esp + 0x17c], edx
mov ecx, dword [eax]
cmp ecx, edx
je 0x4e2ed7
lea edx, [esp + 0x160]
push edx
push 0xb
push eax
call ecx
add esp, 0xc
xor edx, edx
jmp 0x4e2ed9
xor eax, eax
cmp esi, edx
lea ecx, [ebx + 0x138]
jne 0x4e2ef0
test byte [ecx], 8
jne 0x4e2f13
mov dword [ecx], 0x29
jmp 0x4e2f07
cmp esi, eax
jge 0x4e2efc
mov dword [ecx], 0x20
jmp 0x4e2f13
test byte [ecx], 0x20
je 0x4e2f13
mov dword [ecx], 2
mov edx, dword [0x725b2c]
mov dword [ebx + 0x13c], edx
lea edx, [ebx + 0x158]
push edx
push ecx
push eax
push esi
push edi
call fcn.004d7fa0
mov eax, dword [esp + 0x30]
mov byte [ebx + 0x76], 0
mov edx, dword [eax + 0xba8]
mov ax, word [eax + 0x80]
add esp, 0x14
cmp edx, 0x7fffffff
setne dl
cmp ax, 0xbe
jb 0x4e2f54
cmp ax, 0xc6
ja 0x4e2f54
mov al, 1
jmp 0x4e2f56
xor al, al
mov ecx, dword [ebx + 0x2d8]
lea edi, [ebx + 0x2d8]
test ecx, ecx
setne cl
test dl, dl
mov byte [esp + 0x7b], al
mov byte [esp + 0x7a], cl
jne 0x4e2f7f
test al, al
jne 0x4e2f7f
test cl, cl
je 0x4e31a0
mov eax, dword [esp + 0x1c]
xor esi, esi
cmp dword [eax + 0xbdc], esi
lea ecx, [eax + 0xbdc]
je 0x4e2f98
mov esi, 1
cmp dword [eax + 0xbe0], 0
je 0x4e2fa6
mov esi, 2
cmp dword [eax + 0xbe4], 0
je 0x4e2fb4
mov esi, 3
cmp dword [eax + 0xbe8], 0
je 0x4e2fc2
mov esi, 4
mov al, byte [esp + 0x7b]
test al, al
je 0x4e30a1
mov al, byte [esp + 0x7a]
test al, al
je 0x4e31a0
test esi, esi
jle 0x4e2fff
lea eax, [ebx + 0x2e8]
mov edx, esi
cmp dword [eax], 0
jne 0x4e2ff6
mov dword [eax], 0x40
mov edi, dword [ecx]
mov dword [eax + 8], edi
add ecx, 4
add eax, 0x10
dec edx
jne 0x4e2fe6
mov ecx, dword [ebx + 0x328]
test ecx, ecx
lea eax, [ebx + 0x328]
jne 0x4e309e
xor edx, edx
test esi, esi
jle 0x4e3068
lea eax, [ebx + 0x2e8]
nop
mov edi, dword [esp + 0x1c]
movsx ecx, word [edi + 0xbec]
cmp edx, ecx
jl 0x4e3049
movsx edi, word [edi + 0xbee]
add edi, ecx
cmp edx, edi
jge 0x4e3049
cmp dword [eax], 0x20
je 0x4e3060
mov dword [eax], 0x20
jmp 0x4e3057
test dword [eax], 0x102
jne 0x4e3060
mov dword [eax], 2
mov ecx, dword [0x725b2c]
mov dword [eax + 4], ecx
inc edx
add eax, 0x10
cmp edx, esi
jl 0x4e3020
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + 0x328]
mov dword [eax], 0x40
mov edx, dword [0x725b2c]
mov dword [ebx + 0x32c], edx
movsx edx, word [ecx + 0xbec]
mov dword [ebx + 0x330], edx
movsx ecx, word [ecx + 0xbee]
mov dword [ebx + 0x334], ecx
push eax
jmp 0x4e30d7
test dl, dl
je 0x4e30f8
test esi, esi
je 0x4e31a0
jle 0x4e30d0
lea eax, [ebx + 0x2e8]
mov edx, esi
cmp dword [eax], 0
jne 0x4e30c7
mov dword [eax], 0x40
mov edi, dword [ecx]
mov dword [eax + 8], edi
add ecx, 4
add eax, 0x10
dec edx
jne 0x4e30b7
lea ecx, [ebx + 0x328]
push ecx
lea edx, [ebx + 0x2e8]
push edx
lea eax, [ebx + 0x2d8]
push eax
mov eax, dword [esp + 0x44]
push esi
push eax
call fcn.004d84c0
add esp, 0x14
jmp 0x4e31a0
mov al, byte [esp + 0x7a]
test al, al
je 0x4e31a0
cmp dword [edi], 4
jne 0x4e311b
mov dword [edi], 2
mov ecx, dword [0x725b2c]
mov dword [ebx + 0x2dc], ecx
mov ecx, dword [esp + 0x38]
lea edx, [ebx + 0x328]
push edx
lea eax, [ebx + 0x2e8]
push eax
push edi
push esi
push ecx
call fcn.004d84c0
add esp, 0x14
jmp 0x4e31a0
test dword [ebx + 4], 0x2000000
jne 0x4e3150
mov al, byte [ebx + 0x76]
test al, al
jne 0x4e3150
mov byte [ebx + 0x76], 0
jmp 0x4e31a0
mov eax, dword [0x6f2234]
mov ecx, dword [eax + 0x1f4]
lea edx, [ebx + 0x228]
push edx
lea esi, [ebx + 0xf8]
push esi
push ecx
push edi
call fcn.004d8c40
lea edx, [ebx + 0x248]
push edx
lea eax, [ebx + 0x2c8]
push eax
push 5
push 3
push edi
call fcn.004d8950
mov eax, dword [ebx + 4]
add esp, 0x24
test eax, 0x2000000
jmp 0x4e2d6d
mov eax, 1
mov byte [ebx + 0x76], al
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
xor edi, edi
cmp eax, edi
lea ecx, [esp + 0x370]
mov dword [esp + 0x140], 0x7152
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], edi
mov dword [esp + 0x150], edi
mov dword [esp + 0x154], edi
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], edi
je 0x4e31ff
lea edx, [esp + 0x140]
push edx
push 0xb
push esi
call eax
add esp, 0xc
lea eax, [esp + 0x370]
push eax
mov ecx, 0x6ebbd8
call fcn.004d6500
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, 0x6ebbd8
call fcn.004d68e0
test dword [ebx + 4], 0x1000000
je 0x4e32a2
mov ecx, dword [esi + 0xb50]
cmp ecx, edi
je 0x4e32a2
call fcn.005ef730
cmp byte [eax + 8], 2
jne 0x4e32a2
lea edx, [esp + 0x358]
push edx
mov ecx, 0x6bebfc
call fcn.004d1360
call fcn.006183e0
mov ecx, dword [esi + 0xb50]
sub eax, 0x48
mov word [esp + 0x358], ax
lea eax, [ebx + 0x128]
push eax
lea edx, [ebx + 0x118]
push edx
mov word [esp + 0x362], 0x10
call fcn.005ef730
mov ecx, dword [esp + 0x40]
push eax
lea eax, [esp + 0x364]
push eax
push ecx
call fcn.004d7080
add esp, 0x14
jmp 0x4e34d8
test dword [ebx + 4], 0x800000
mov ecx, dword [0x6f21fc]
je 0x4e3350
mov eax, dword [esi + 0xb50]
cmp eax, edi
je 0x4e32c5
cmp byte [eax + 8], 1
je 0x4e32cd
cmp ecx, edi
jle 0x4e3350
mov eax, dword [0x725b70]
mov edi, dword [eax]
test edi, edi
je 0x4e34c7
lea esp, [esp]
mov esi, dword [eax + 8]
mov ax, word [esi + 0xc]
cmp ax, 0xff6a
jl 0x4e32f3
cmp ax, 0xff9b
jle 0x4e3309
mov ecx, dword [0x76ba40]
test ecx, ecx
je 0x4e3343
cmp ax, 0xff9d
jl 0x4e3343
cmp ax, 0xff9f
jg 0x4e3343
mov ecx, dword [esp + 0x1c]
push 0x7e967699
push esi
call fcn.004f41b0
test al, al
je 0x4e3343
cmp dword [esi], 0x42a860
jne 0x4e332a
cmp byte [esi + 9], 1
je 0x4e3343
mov edx, dword [esp + 0x1c]
cmp esi, dword [edx + 0xb50]
sete al
mov ecx, 0x6f19e8
push eax
push esi
call fcn.004df500
mov eax, edi
mov edi, dword [edi]
test edi, edi
jne 0x4e32e0
jmp 0x4e34c7
mov edx, dword [0x6f2234]
cmp byte [edx + 9], 0xd
je 0x4e3443
cmp ecx, edi
jg 0x4e3443
mov eax, dword [esi + 0xb50]
cmp eax, edi
je 0x4e34d8
lea ecx, [esp + 0x60]
mov dword [esp + 0x1a8], ecx
lea ecx, [esp + 0x20]
lea edx, [esp + 0x40]
mov dword [esp + 0x1a0], 0x7155
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1bc], edi
mov ecx, dword [eax]
cmp ecx, edi
je 0x4e34d8
lea edx, [esp + 0x1a0]
push edx
push 0xb
push eax
call ecx
add esp, 0xc
cmp eax, edi
je 0x4e34d8
lea eax, [esp + 0x358]
push eax
mov ecx, 0x6bebfc
call fcn.004d1360
call fcn.006183e0
sub eax, 0x48
lea ecx, [ebx + 0x128]
push ecx
mov ecx, dword [esp + 0x44]
mov word [esp + 0x35c], ax
mov eax, dword [esp + 0x24]
lea edx, [ebx + 0x118]
push edx
mov edx, dword [esp + 0x68]
push eax
push ecx
mov ecx, dword [esp + 0x48]
push edx
lea eax, [esp + 0x36c]
push eax
push ecx
mov word [esp + 0x376], 0x10
call fcn.004d7ac0
add esp, 0x1c
jmp 0x4e34d8
mov eax, dword [0x725b70]
mov byte [0x6f2200], 1
mov edi, dword [eax]
test edi, edi
je 0x4e34c7
lea esp, [esp]
mov esi, dword [eax + 8]
mov ax, word [esi + 0xc]
cmp ax, 0xff6a
jl 0x4e3473
cmp ax, 0xff9b
jle 0x4e3489
mov ecx, dword [0x76ba40]
test ecx, ecx
je 0x4e34bf
cmp ax, 0xff9d
jl 0x4e34bf
cmp ax, 0xff9f
jg 0x4e34bf
mov ecx, dword [esp + 0x1c]
push 0x7e967699
push esi
call fcn.004f41b0
test al, al
je 0x4e34bf
mov al, byte [esi + 0x208]
test al, al
je 0x4e34bf
mov edx, dword [esp + 0x1c]
cmp esi, dword [edx + 0xb50]
sete al
mov ecx, 0x6f19e8
push eax
push esi
call fcn.004df500
mov eax, edi
mov edi, dword [edi]
test edi, edi
jne 0x4e3460
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, 0x6f19e8
call fcn.004df6e0
xor edi, edi
mov ecx, dword [0x76ba40]
cmp ecx, edi
je case.default.0x4e3726
mov edx, dword [0x6f2234]
mov eax, dword [edx + 0x380]
cmp eax, 0x7e
jne 0x4e3775
mov al, byte [0x76ba44]
test al, al
mov edx, dword [ecx + 0xb18]
je case.default.0x4e3726
xor edi, edi
cmp edx, edi
mov eax, ecx
mov ecx, dword [eax + 0xb24]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 1
mov dword [esp + 0x3c], edi
je 0x4e355b
mov eax, dword [ecx + 0x188]
mov esi, dword [ecx + edx*8 + 0x188]
cmp eax, esi
jle 0x4e3545
mov dword [esp + 0x1c], 2
jne 0x4e355b
mov edi, 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0x18], edi
mov eax, dword [0x76ba40]
mov esi, dword [eax + 0xb28]
test esi, esi
je 0x4e3572
mov dword [esp + 0x3c], 1
cmp edx, 1
je 0x4e35a4
mov eax, dword [ecx + 0x190]
mov esi, dword [ecx + edx*8 + 0x188]
cmp eax, esi
jle 0x4e3592
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp eax, esi
jne 0x4e35a4
mov dword [esp + edi*4 + 0xa0], 1
inc edi
mov dword [esp + 0x18], edi
mov eax, dword [0x76ba40]
mov esi, dword [eax + 0xb2c]
test esi, esi
je 0x4e35b7
inc dword [esp + 0x3c]
cmp edx, 2
je 0x4e35e9
mov eax, dword [ecx + 0x198]
mov esi, dword [ecx + edx*8 + 0x188]
cmp eax, esi
jle 0x4e35d7
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp eax, esi
jne 0x4e35e9
mov dword [esp + edi*4 + 0xa0], 2
inc edi
mov dword [esp + 0x18], edi
mov eax, dword [0x76ba40]
mov esi, dword [eax + 0xb30]
test esi, esi
je 0x4e35fc
inc dword [esp + 0x3c]
cmp edx, 3
je 0x4e362a
mov eax, dword [ecx + 0x1a0]
mov esi, dword [ecx + edx*8 + 0x188]
cmp eax, esi
jle 0x4e361c
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp eax, esi
jne 0x4e362a
mov dword [esp + edi*4 + 0xa0], 3
inc edi
mov eax, dword [0x76ba40]
mov esi, dword [eax + 0xb34]
test esi, esi
je 0x4e363d
inc dword [esp + 0x3c]
dec edi
lea eax, [edi + 1]
cmp eax, 4
jl 0x4e36dd
lea eax, [edi + 1]
shr eax, 2
mov dword [esp + 0x20], eax
neg eax
lea esi, [esp + edi*4 + 0x98]
lea edi, [edi + eax*4]
mov eax, dword [esi + 8]
fld dword [ecx + eax*8 + 0x18c]
fcomp dword [ecx + edx*8 + 0x18c]
fnstsw ax
test ah, 5
jp 0x4e367c
inc dword [esp + 0x1c]
mov eax, dword [esi + 4]
fld dword [ecx + eax*8 + 0x18c]
fcomp dword [ecx + edx*8 + 0x18c]
fnstsw ax
test ah, 5
jp 0x4e3698
inc dword [esp + 0x1c]
mov eax, dword [esi]
fld dword [ecx + eax*8 + 0x18c]
fcomp dword [ecx + edx*8 + 0x18c]
fnstsw ax
test ah, 5
jp 0x4e36b3
inc dword [esp + 0x1c]
mov eax, dword [esi - 4]
fld dword [ecx + eax*8 + 0x18c]
fcomp dword [ecx + edx*8 + 0x18c]
fnstsw ax
test ah, 5
jp 0x4e36cf
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
sub esi, 0x10
dec eax
mov dword [esp + 0x20], eax
jne 0x4e3660
test edi, edi
mov esi, dword [esp + 0x1c]
jl 0x4e3710
jmp 0x4e36f0
mov eax, dword [esp + edi*4 + 0xa0]
fld dword [ecx + eax*8 + 0x18c]
fcomp dword [ecx + edx*8 + 0x18c]
fnstsw ax
test ah, 5
jp 0x4e370d
inc esi
dec edi
jns 0x4e36f0
mov eax, dword [esp + 0x3c]
cmp esi, eax
jle 0x4e371a
mov esi, eax
lea eax, [esi - 1]
cmp eax, 3
ja case.default.0x4e3726
jmp dword [eax*4 + 0x4e3b3c]
push 0xe35
push 0xf
push ebx
call fcn.004e0ab0
add esp, 0xc
jmp case.default.0x4e3726
push 0xe36
push 0xf
push ebx
call fcn.004e0ab0
add esp, 0xc
jmp case.default.0x4e3726
push 0xe37
push 0xf
push ebx
call fcn.004e0ab0
add esp, 0xc
jmp case.default.0x4e3726
push 0xe38
push 0xf
push ebx
call fcn.004e0ab0
add esp, 0xc
jmp case.default.0x4e3726
cmp eax, 0x81
jne case.default.0x4e3726
mov ecx, dword [ecx + 0xb18]
mov eax, dword [0x744b70]
cmp byte [ecx + eax + 5], 1
lea eax, [ebx + 0x228]
sete cl
push ecx
mov ecx, dword [edx + 0x1f4]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
call fcn.004d8f90
add esp, 0x10
mov eax, dword [0x6b5084]
cmp eax, dword [ebx + 0x94]
je 0x4e37d6
mov dword [ebx + 0x94], eax
mov eax, dword [0x6b5084]
mov ecx, dword [eax*4 + 0x6b5088]
push ecx
push 0x10
push ebx
call fcn.004e0ab0
add esp, 0xc
mov eax, dword [0x6f2258]
test eax, eax
je case.0x4e3827.3
cmp byte [eax + 9], 2
jne case.0x4e3827.3
cmp dword [eax + 0xd68], 3
je case.0x4e3827.3
test dword [eax + 4], 0x60000000
jne case.0x4e3827.3
mov eax, dword [0x76cb8c]
cmp eax, 3
mov esi, dword [0x6ebbd4]
jne 0x4e381e
mov eax, 1
jmp switch.0x004e3827
cmp eax, 4
ja case.0x4e3827.3
jmp dword [eax*4 + 0x4e3b4c]
mov eax, 2
mov word [esp + 0x24], ax
mov word [esp + 0x26], ax
call fcn.006183e0
cdq
sub eax, edx
sar eax, 1
dec eax
mov word [esp + 0x20], ax
call fcn.006183f0
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
push 0
sar eax, 1
push esi
lea edx, [esp + 0x28]
dec eax
push edx
mov word [esp + 0x2e], ax
call fcn.00487660
mov eax, 0x11
mov word [esp + 0x24], ax
mov word [esp + 0x26], ax
call fcn.006183e0
cdq
sub eax, edx
mov edi, eax
sar edi, 1
call fcn.006183f0
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
add ax, 0xfff8
push 0
mov word [esp + 0x26], ax
push esi
lea eax, [esp + 0x28]
add di, 0xfff8
push eax
mov word [esp + 0x2c], di
call fcn.004d0ca0
push 0
push esi
lea ecx, [esp + 0x28]
mov eax, 2
dec di
dec word [esp + 0x2a]
push ecx
mov ecx, dword [esp + 0x44]
mov word [esp + 0x2c], di
mov word [esp + 0x30], ax
mov word [esp + 0x32], ax
call fcn.00487660
cmp dword [0x76cb8c], 3
jne case.0x4e3827.3
mov word [esp + 0x24], 2
mov word [esp + 0x26], 0xa
call fcn.006183e0
cdq
sub eax, edx
sar eax, 1
dec eax
mov word [esp + 0x20], ax
call fcn.006183f0
mov edi, dword [esp + 0x38]
cdq
sub eax, edx
push 0
sar eax, 1
push esi
lea edx, [esp + 0x28]
sub eax, 5
push edx
mov ecx, edi
mov word [esp + 0x2e], ax
call fcn.00487660
mov word [esp + 0x24], 0xa
mov word [esp + 0x26], 2
call fcn.006183e0
cdq
sub eax, edx
sar eax, 1
sub eax, 5
mov word [esp + 0x20], ax
call fcn.006183f0
cdq
sub eax, edx
sar eax, 1
dec eax
push 0
mov word [esp + 0x26], ax
push esi
lea eax, [esp + 0x28]
push eax
jmp 0x4e39ea
mov word [esp + 0x24], 2
mov word [esp + 0x26], 0x10
call fcn.006183e0
cdq
sub eax, edx
sar eax, 1
dec eax
mov word [esp + 0x20], ax
call fcn.006183f0
mov edi, dword [esp + 0x38]
cdq
sub eax, edx
push 0
sar eax, 1
push esi
lea ecx, [esp + 0x28]
sub eax, 8
push ecx
mov ecx, edi
mov word [esp + 0x2e], ax
call fcn.00487660
mov word [esp + 0x24], 0x10
mov word [esp + 0x26], 2
call fcn.006183e0
cdq
sub eax, edx
sar eax, 1
sub eax, 8
mov word [esp + 0x20], ax
call fcn.006183f0
cdq
sub eax, edx
push 0
sar eax, 1
dec eax
push esi
lea edx, [esp + 0x28]
mov word [esp + 0x2a], ax
push edx
mov ecx, edi
call fcn.00487660
mov eax, dword [ebx + 4]
and eax, 0x20010000
cmp eax, 0x20010000
jne 0x4e3ae1
mov ecx, dword [0x6f2234]
mov al, byte [ecx + 0x1d0]
test al, al
jne 0x4e3ae1
movaps xmm0, xmmword [esp + 0x240]
lea edx, [esp + 0x200]
push edx
movaps xmmword [esp + 0x204], xmm0
call fcn.0048a300
mov edi, eax
and edi, 0xff
add esp, 4
cmp edi, 0xfe
mov dword [esp + 0x40], edi
je 0x4e3ae1
mov eax, dword [ebx + 0x90]
cmp edi, eax
je 0x4e3ae1
cmp eax, 0xffffffff
jne 0x4e3a79
push 0x68e414
push 5
mov ecx, ebx
call fcn.004daad0
mov dword [ebx + 0x90], edi
jmp 0x4e3ae1
push edi
lea eax, [esp + 0x24]
push eax
mov ecx, 0x725b20
call fcn.00526bb0
test eax, eax
je 0x4e3ae1
cmp edi, 0x1b
jne 0x4e3a9d
mov edx, 0x11
mov dword [esp + 0x20], edx
jmp 0x4e3aa1
mov edx, dword [esp + 0x20]
mov ecx, edx
mov esi, eax
mov eax, ecx
shr ecx, 2
lea edi, [esp + 0x388]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x388]
push ecx
push 5
mov ecx, ebx
mov byte [esp + edx + 0x390], 0
call fcn.004daad0
test al, al
je 0x4e3ae1
mov edx, dword [esp + 0x40]
mov dword [ebx + 0x90], edx
mov ecx, dword [0x76ba40]
test ecx, ecx
je 0x4e3af5
mov eax, dword [esp + 0x38]
push eax
call fcn.00621620
mov ecx, dword [esp + 0x38]
call fcn.0061a360
mov ecx, dword [esp + 0x48c]
xor eax, eax
call fcn.00671b23
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10