Function at 0x4f7220
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x741101
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a4
mov eax, dword [0x844c70]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x28], esi
mov ecx, dword [eax + 0x88]
mov dword [ebp - 0x158], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x150], ecx
mov ecx, dword [eax + 0x34]
mov dword [eax + 0x88], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov eax, esi
mov esi, dword [ebp + 0x18]
or eax, esi
push edi
mov dword [ebp - 0x154], ecx
mov dword [ebp + 0x18], esi
jne 0x4f7295
rdtsc
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x18], edx
call fcn.004fd3f0
mov ecx, eax
call fcn.006ff2f0
movss xmm1, dword [0x765bc4]
cvtsd2ss xmm0, xmm0
mov edi, dword [ebp + 8]
mov eax, dword [edi]
divss xmm1, xmm0
movss dword [eax + 0x10], xmm1
mov eax, dword [0x844c70]
mov eax, dword [eax + 0x164ea0]
test eax, eax
jne 0x4f72d3
mov eax, 0x3b9aca00
xor edx, edx
jmp 0x4f72d5
call eax
mov ecx, eax
call fcn.006ff2f0
movss xmm1, dword [0x765bc4]
cvtsd2ss xmm0, xmm0
mov eax, dword [edi]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 0x18]
divss xmm1, xmm0
movss dword [eax + 0x14], xmm1
mov eax, dword [0x844c70]
mov esi, dword [edi]
sub ecx, dword [eax + 0x20]
sbb edx, dword [eax + 0x24]
call fcn.006ff290
cvtsd2ss xmm0, xmm0
lea eax, [ebp - 0x168]
push eax
mulss xmm0, dword [esi + 0x10]
movss dword [esi + 0x18], xmm0
call fcn.00711794
mov eax, dword [edi]
add esp, 4
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x164]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov eax, dword [0x844c70]
mov ecx, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x28], eax
mov eax, dword [0x844c70]
mov ecx, dword [edi]
mov eax, dword [eax + 0x2b4]
mov dword [ecx + 0x2c], eax
mov eax, dword [0x844c70]
mov ecx, dword [eax + 0x164eb0]
test ecx, ecx
je 0x4f7373
push dword [eax + 0x164eb4]
call ecx
add esp, 4
mov eax, dword [edi]
mov ecx, edi
add eax, 0xc
push eax
push dword [ebp + 0x10]
call fcn.004fd4f0
mov eax, dword [edi]
mov ecx, edi
add eax, 0x40
push eax
mov eax, dword [0x844c70]
push dword [eax + 0x164eac]
call fcn.004fd4f0
mov eax, dword [0x844c70]
mov ecx, dword [edi]
mov dword [ebp + 0x18], 0
mov eax, dword [eax + 8]
mov dword [ecx + 0x44], eax
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x48], eax
mov eax, dword [0x844c70]
cmp dword [eax + 8], 0
jbe 0x4f740e
xor esi, esi
add eax, 0x2b8
lea ecx, [ebp - 0x128]
push ecx
add eax, esi
mov ecx, edi
push eax
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov edx, dword [edi + 0x28]
add esi, 0x48
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x128]
mov dword [edx + ecx], eax
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x844c70]
inc ecx
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov dword [ebp + 0x18], ecx
cmp ecx, dword [eax + 8]
jb 0x4f73c4
mov ecx, dword [edi]
mov eax, dword [eax + 4]
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f7433
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0x28], 0
mov dword [eax + 0x50], ecx
mov esi, dword [edi]
cmp dword [esi + 0x4c], 0
jbe 0x4f75e6
xor ecx, ecx
mov edx, 0x38278
mov dword [ebp - 0x44], ecx
mov dword [ebp + 0x18], edx
nop dword [eax + eax]
mov eax, dword [0x844c70]
add ecx, 0x738
add ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 8]
mov esi, dword [edx + eax - 0x180]
mov edi, dword [edx + eax - 0x17c]
push 8
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov ecx, edx
mov eax, dword [0x844c70]
mov edi, dword [ebp + 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [edi + eax]
mov edi, dword [edi + eax + 4]
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 4
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov ecx, edx
mov edi, dword [ebp - 0x14]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [edi + 0x44]
call fcn.004f3e60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
lea eax, [ebp - 0x144]
mov esi, dword [ebp + 8]
mov ecx, esi
push eax
push edi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
call fcn.004fd4f0
push 4
mov ecx, esi
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x144]
push 4
mov dword [edx + ecx], eax
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
mov ecx, dword [ebp + 8]
mov esi, dword [edi + 0x50]
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 4
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov ecx, edx
add dword [edx + 0x28], 4
add dword [edx + 0x2c], 4
mov esi, dword [edi + 0x54]
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 4
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov ecx, edx
add dword [edx + 0x28], 4
add dword [edx + 0x2c], 4
mov esi, dword [edi + 0x48]
call fcn.004f3e60
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
push 4
mov dword [ecx + eax], esi
add dword [edx + 0x28], 4
add dword [edx + 0x2c], 4
mov esi, dword [edi + 0x58]
mov edi, edx
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
add dword [edi + 0x28], 4
mov eax, dword [edi + 0x28]
add dword [edi + 0x2c], 4
and eax, 7
je 0x4f75c2
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [ebp - 0x28]
mov esi, dword [edi]
inc eax
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x44]
add edx, 8
add ecx, 0x5c
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x18], edx
mov dword [ebp - 0x44], ecx
cmp eax, dword [esi + 0x4c]
jb 0x4f7460
mov eax, dword [0x844c70]
mov eax, dword [eax]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f760d
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0x28], 0
mov dword [eax + 0x58], ecx
mov eax, dword [0x844c70]
mov dword [ebp - 0x38], eax
cmp dword [eax], 0
jbe 0x4f78e6
xor ecx, ecx
mov dword [ebp + 0x18], 0x31c78
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], ecx
nop dword [eax]
mov esi, dword [ecx + eax + 0x25c78]
mov edi, dword [ecx + eax + 0x25c7c]
mov ecx, dword [ebp + 8]
push 8
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax - 0x8000]
mov edi, dword [ecx + eax - 0x7ffc]
mov ecx, edx
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x2c]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax + 0x2bc78]
mov edi, dword [ecx + eax + 0x2bc7c]
mov ecx, edx
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax]
mov edi, dword [ecx + eax + 4]
mov ecx, edx
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax - 0x2000]
mov edi, dword [ecx + eax - 0x1ffc]
mov ecx, edx
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax + 0x2000]
mov edi, dword [ecx + eax + 0x2004]
mov ecx, edx
call fcn.004f3e60
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
add dword [edx + 0x28], 8
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
add dword [edx + 0x2c], 8
push 8
mov esi, dword [ecx + eax + 0x4000]
mov edi, dword [ecx + eax + 0x4004]
mov ecx, edx
call fcn.004f3e60
mov eax, dword [ebp + 8]
push 4
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
mov esi, dword [ebp - 0x38]
mov dword [ecx + eax + 4], edi
mov edi, dword [ebp + 8]
mov ecx, edi
mov eax, dword [ebp - 0x20]
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
mov esi, dword [eax + esi + 0x1880]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov ecx, edi
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x20]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [esi + eax + 0x1884]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [ecx + eax + 0x18cc]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov ecx, edi
mov eax, dword [0x844c70]
mov esi, dword [ebp - 0x2c]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [esi + eax + 0x2bc80]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
lea eax, [ebp - 0x140]
mov ecx, dword [ebp - 0x20]
add dword [edi + 0x28], 4
add ecx, 0x1888
add dword [edi + 0x2c], 4
push eax
mov eax, dword [ebp - 0x38]
add eax, ecx
mov ecx, edi
push eax
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x140]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
mov edx, dword [edi + 0x28]
mov eax, edx
add dword [edi + 0x2c], 4
and eax, 7
je 0x4f78b3
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
mov edx, dword [edi + 0x28]
add dword [edi + 0x2c], esi
mov eax, dword [edi + 0x2c]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
inc esi
add dword [ebp + 0x18], 8
add ecx, 0x10
add dword [ebp - 0x20], 0x60
mov dword [ebp - 0x44], eax
mov eax, dword [0x844c70]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x38], eax
cmp esi, dword [eax]
jb 0x4f7640
mov ecx, dword [ebp - 0x44]
jmp 0x4f78ec
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
xor esi, esi
mov dword [ebp - 0x38], esi
and edx, 7
je 0x4f7910
mov esi, 8
mov ecx, edi
sub esi, edx
push esi
call fcn.004f3e60
add dword [edi + 0x2c], esi
add dword [edi + 0x28], esi
xor esi, esi
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
mov dword [eax + 0x60], ecx
mov ecx, 0x89ba4
mov dword [ebp + 0x18], ecx
nop dword [eax]
mov eax, dword [0x844c70]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4f7a3e
inc esi
mov ecx, edi
mov dword [ebp - 0x38], esi
mov esi, dword [eax + 0x24]
push 8
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov esi, dword [ebp - 0x14]
mov dword [ecx + eax + 4], 0
lea eax, [ebp - 0x138]
add dword [edi + 0x28], 8
mov ecx, edi
add dword [edi + 0x2c], 8
push eax
lea eax, [esi + 0x4e8]
push eax
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x138]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [esi + 0x528]
movss xmm0, dword [0x76463c]
sub eax, 0
je 0x4f79c5
sub eax, 1
je 0x4f79bb
sub eax, 2
jne 0x4f79cd
movss xmm0, dword [0x78ab94]
jmp 0x4f79cd
movss xmm0, dword [0x78ab90]
jmp 0x4f79cd
movss xmm0, dword [0x78ab8c]
mulss xmm0, dword [0x78ab98]
call fcn.006feff0
push 4
mov ecx, edi
mov esi, eax
call fcn.004f3e60
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
push 4
mov dword [edx + ecx], esi
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [ecx + eax]
mov ecx, edi
mov esi, dword [eax + 0x20]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
add dword [edi + 0x28], 4
mov eax, dword [edi + 0x28]
add dword [edi + 0x2c], 4
and eax, 7
je 0x4f7a3b
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x38]
add ecx, 4
mov dword [ebp + 0x18], ecx
cmp ecx, 0x89da4
jl 0x4f7920
mov eax, dword [edi]
mov ecx, esi
mov edx, 0x89ba4
mov dword [ebp + 0x18], edx
mov dword [eax + 0x5c], ecx
lea ecx, [ecx + ecx*2]
mov eax, dword [edi]
shl ecx, 4
mov dword [eax + 0x64], ecx
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x68], eax
mov eax, dword [0x844c70]
nop word [eax + eax]
cmp dword [edx + eax], 0
je 0x4f7ad8
mov ecx, 0x368
mov dword [ebp - 0x28], ecx
nop
mov eax, dword [edx + eax]
push 8
mov esi, dword [ecx + eax]
mov edi, dword [ecx + eax + 4]
mov ecx, dword [ebp + 8]
call fcn.004f3e60
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
mov eax, dword [0x844c70]
add ecx, 8
mov dword [ebp - 0x28], ecx
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
cmp ecx, 0x4e8
jb 0x4f7a90
add edx, 4
mov dword [ebp + 0x18], edx
cmp edx, 0x89da4
jl 0x4f7a80
mov ecx, dword [edi]
mov eax, dword [eax + 0xe1e78]
mov dword [ecx + 0x6c], eax
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f7b0e
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0x28], 0
mov dword [eax + 0x70], ecx
mov edx, dword [0x844c70]
cmp dword [edx + 0xe1e78], 0
jbe 0x4f7d8f
mov eax, 0x163e88
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x2c], eax
nop
movq xmm0, qword [edx + eax - 0x82008]
movq qword [ebp + 0x14], xmm0
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
nop
mov ecx, dword [ebp + 8]
push 8
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov ecx, edx
mov eax, dword [0x844c70]
mov edi, dword [ebp - 0x2c]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [eax + edi]
mov edi, dword [eax + edi + 4]
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x2c]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [eax + ecx - 0x1000]
mov edi, dword [eax + ecx - 0xffc]
mov ecx, edx
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax + 0xdce90]
mov edi, dword [ecx + eax + 0xdce94]
mov ecx, edx
call fcn.004f3e60
mov eax, dword [ebp + 8]
push 4
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
mov esi, dword [ebp - 0x18]
mov dword [ecx + eax + 4], edi
mov edi, dword [ebp + 8]
mov ecx, edi
mov eax, dword [0x844c70]
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
mov esi, dword [esi + eax + 0xdce78]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [ecx + eax + 0xdce7c]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x18]
push 4
mov esi, dword [ecx + eax + 0xdce80]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [ecx + eax + 0xdce8c]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
lea ecx, [ebp - 0x13c]
mov eax, dword [0x844c70]
mov esi, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
push ecx
push dword [esi + eax + 0xdce88]
mov ecx, edi
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x13c]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
mov eax, dword [0x844c70]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [esi + eax + 0xdce98]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 1
mov dword [ecx + eax], esi
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov al, byte [ecx + eax + 0xdce86]
mov ecx, edi
mov byte [ebp + 0x1b], al
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dl, byte [ebp + 0x1b]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
mov eax, dword [edi + 0x28]
inc dword [edi + 0x2c]
and eax, 7
je 0x4f7d69
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov ecx, dword [ebp - 0x28]
mov edx, dword [0x844c70]
inc ecx
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x18], 0x28
add eax, 8
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
cmp ecx, dword [edx + 0xe1e78]
jb 0x4f7b40
mov ecx, dword [edi]
mov eax, dword [edx + 0xe2e80]
mov dword [ecx + 0x74], eax
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x78], eax
xor ecx, ecx
mov esi, dword [0x844c70]
mov dword [ebp - 0x68], ecx
cmp dword [esi + 0xe1e78], ecx
jbe 0x4f7ebe
xor edx, edx
mov eax, 0x162e88
mov dword [ebp - 0x80], edx
mov dword [ebp + 0x18], eax
nop word [eax + eax]
test dword [edx + esi + 0xdce8c], 1
je 0x4f7ea2
mov edx, dword [eax + esi + 0x1000]
mov eax, dword [eax + esi + 0x1004]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x60], edx
mov eax, dword [eax + esi]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + esi + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0xe2e80]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
add eax, dword [ebp - 0x14]
mov edi, dword [ebp + 8]
and eax, 0x7f
shl eax, 9
add eax, ecx
mov ecx, dword [esi + eax*8 + 0xe2e88]
mov esi, dword [esi + eax*8 + 0xe2e8c]
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jl 0x4f7e43
jg 0x4f7e3f
cmp edx, ecx
jbe 0x4f7e43
mov ecx, edx
mov esi, eax
cmp dword [ebp - 0x44], esi
jg 0x4f7e55
jl 0x4f7e4f
cmp dword [ebp - 0x28], ecx
jae 0x4f7e55
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x44]
sub ecx, edx
mov dword [ebp - 0x48], ecx
mov ecx, edi
push 8
sbb esi, eax
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov edx, dword [ebp - 0x48]
mov dword [ecx + eax], edx
mov dword [ecx + eax + 4], esi
mov eax, dword [ebp - 0x10]
add dword [edi + 0x28], 8
inc eax
add dword [edi + 0x2c], 8
mov esi, dword [0x844c70]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x10], eax
cmp eax, 0x80
jae 0x4f7e9c
mov edx, dword [ebp - 0x60]
jmp 0x4f7e16
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x80]
inc ecx
add eax, 8
add edx, 0x28
mov dword [ebp - 0x68], ecx
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x80], edx
cmp ecx, dword [esi + 0xe1e78]
jb 0x4f7dd0
mov ecx, dword [ebp + 0xc]
mov eax, 0x1fa
cmp ecx, eax
mov dword [ebp - 0x18], 0
mov edx, 1
cmova ecx, eax
mov dword [ebp - 0x24], edx
xor eax, eax
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x2c], eax
cmp ecx, edx
jb 0x4f8041
nop word [eax + eax]
mov ecx, dword [esi + 0x89da8]
sub ecx, edx
mov dword [ebp - 0x40], 0
mov eax, ecx
and eax, 0x1ff
imul edx, eax, 0x268
lea eax, [ecx + 1]
and eax, 0x1ff
imul eax, eax, 0x268
add edx, esi
sub eax, edx
add eax, esi
lea edi, [edx + 0x89dec]
mov dword [ebp - 0x10], eax
mov eax, 0xfffffdb8
sub eax, edx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x48], eax
add eax, edi
mov eax, dword [eax + esi]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4f7ffb
cmp byte [esi + 0x164ec4], 0
jne 0x4f7fdf
cmp byte [0x844bf8], 0
jne 0x4f7fdf
mov eax, dword [eax + 0x528]
mov esi, dword [edi]
movss xmm0, dword [0x76463c]
mov dword [ebp - 0x1c], esi
sub eax, 0
je 0x4f7f96
sub eax, 1
je 0x4f7f8c
sub eax, 2
jne 0x4f7f9e
movss xmm0, dword [0x78ab94]
jmp 0x4f7f9e
movss xmm0, dword [0x78ab90]
jmp 0x4f7f9e
movss xmm0, dword [0x78ab8c]
mulss xmm0, dword [0x78ab98]
call fcn.006feff0
mov ecx, dword [ebp - 0x10]
mov edi, eax
mov eax, dword [ebp + 0x18]
xor edx, edx
mov eax, dword [ecx + eax]
sub eax, esi
mov ecx, dword [ebp - 0x14]
add eax, edi
div edi
mov ecx, dword [ecx + 4]
mov esi, edx
nop
mov eax, edi
xor edx, edx
sub eax, dword [ebp - 0x1c]
add eax, ecx
div edi
cmp esi, edx
ja 0x4f8037
mov esi, dword [0x844c70]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x10]
cmp eax, dword [ecx + edi]
mov ecx, dword [ebp - 0x18]
cmovne ecx, edx
mov dword [ebp - 0x18], ecx
jmp 0x4f8001
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
add edi, 4
inc eax
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x40], eax
cmp eax, 0x80
mov eax, dword [ebp - 0x48]
jb 0x4f7f36
mov eax, dword [ebp - 0x2c]
inc edx
mov dword [ebp - 0x18], ecx
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], eax
cmp edx, ecx
jbe 0x4f7ef0
jmp 0x4f803e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0xc]
inc eax
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
cmp eax, edx
cmovb edx, eax
mov eax, dword [edi]
cmp ecx, edx
cmovb edx, ecx
mov dword [eax + 0x7c], edx
mov eax, dword [0x844c70]
mov dword [ebp - 0x18], edx
mov ecx, dword [eax + 0x89da8]
mov eax, dword [edi]
sub ecx, edx
and ecx, 0x1ff
mov dword [eax + 0x80], ecx
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f8091
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov edx, dword [ebp - 0x18]
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x84], ecx
mov ecx, dword [0x844c70]
mov eax, dword [ecx + 0x89da8]
sub eax, edx
and eax, 0x1ff
mov dword [ebp - 0x2c], eax
imul eax, eax, 0x268
mov edx, dword [eax + ecx + 0x89ddc]
mov esi, dword [eax + ecx + 0x89dd8]
mov dword [ebp - 0x40], edx
mov edx, dword [eax + ecx + 0x89de0]
mov eax, dword [eax + ecx + 0x89de4]
mov dword [ebp - 0x60], eax
mov eax, dword [edi]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x6c], edx
movss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x20], xmm0
call fcn.004fd3f0
mov ecx, dword [edi]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov eax, dword [0x844c70]
mov eax, dword [eax + 0x164ea0]
test eax, eax
jne 0x4f811b
mov eax, 0x3b9aca00
xor edx, edx
jmp 0x4f811d
call eax
mov ecx, dword [edi]
mov dword [ecx + 0x38], eax
xor eax, eax
mov dword [ecx + 0x3c], edx
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x18], eax
jbe 0x4f879c
mov edx, dword [ebp - 0x40]
mov ecx, esi
movsd xmm0, qword [0x75c8f8]
shld edx, ecx, 0x10
movsd qword [ebp - 0x7c], xmm0
shl ecx, 0x10
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x60]
shld edx, ecx, 0x10
shl ecx, 0x10
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x10], ecx
nop word [eax + eax]
add eax, dword [ebp - 0x2c]
mov edx, dword [0x844c70]
and eax, 0x1ff
imul esi, eax, 0x268
lea ecx, [eax + 1]
and ecx, 0x1ff
mov dword [ebp + 0x18], esi
mov eax, dword [esi + edx + 0x89dd8]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + edx + 0x89ddc]
mov dword [ebp - 0x54], eax
imul eax, ecx, 0x268
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + edx + 0x89de0]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], ecx
mov edi, dword [eax + edx + 0x89dd8]
mov esi, dword [eax + edx + 0x89ddc]
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + edx + 0x89de4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [eax + edx + 0x89de0]
mov eax, dword [eax + edx + 0x89de4]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + edx + 0x89dd0]
movss xmm0, dword [ecx + edx + 0x89dc4]
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + edx + 0x89dd4]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx + edx + 0x89dc8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ecx + edx + 0x89dcc]
mov dword [ebp - 0xa0], eax
call fcn.006ff040
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0xb0], edx
mov edx, dword [ebp - 0x54]
shld edx, ecx, 0x10
mov dword [ebp - 0xb4], eax
shl ecx, 0x10
sub ecx, dword [ebp - 0x3c]
sbb edx, dword [ebp - 0x24]
shrd ecx, edx, 0x10
sar edx, 0x10
call fcn.006ff2f0
shld esi, edi, 0x10
cvtsd2ss xmm0, xmm0
shl edi, 0x10
sub edi, dword [ebp - 0x3c]
sbb esi, dword [ebp - 0x24]
shrd edi, esi, 0x10
mulss xmm0, dword [ebp - 0x20]
sar esi, 0x10
mov ecx, edi
mov edx, esi
movss dword [ebp - 0x9c], xmm0
call fcn.006ff2f0
mov esi, dword [ebp - 0x1c]
mov ecx, esi
mov edi, dword [ebp - 0x4c]
mov edx, edi
shld edx, ecx, 0x10
cvtsd2ss xmm0, xmm0
shl ecx, 0x10
sub ecx, dword [ebp - 0x10]
sbb edx, dword [ebp - 0x34]
shrd ecx, edx, 0x10
mulss xmm0, dword [ebp - 0x20]
sar edx, 0x10
movss dword [ebp - 0xb8], xmm0
call fcn.006ff2f0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x70]
cvtsd2ss xmm0, xmm0
shld eax, ecx, 0x10
mulss xmm0, dword [ebp - 0x30]
shl ecx, 0x10
movss dword [ebp - 0x1c], xmm0
sub ecx, dword [ebp - 0x10]
sbb eax, dword [ebp - 0x34]
shrd ecx, eax, 0x10
sar eax, 0x10
mov edx, eax
call fcn.006ff2f0
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa4]
shld eax, ecx, 0x10
cvtsd2ss xmm0, xmm0
shl ecx, 0x10
sub ecx, dword [ebp - 0x3c]
sbb eax, dword [ebp - 0x24]
shrd ecx, eax, 0x10
mulss xmm0, dword [ebp - 0x30]
sar eax, 0x10
mov edx, eax
movss dword [ebp - 0x14], xmm0
call fcn.006ff2f0
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xac]
shld eax, ecx, 0x10
cvtsd2ss xmm0, xmm0
shl ecx, 0x10
sub ecx, dword [ebp - 0x3c]
sbb eax, dword [ebp - 0x24]
shrd ecx, eax, 0x10
mulss xmm0, dword [ebp - 0x20]
sar eax, 0x10
mov edx, eax
movss dword [ebp - 0x4c], xmm0
call fcn.006ff2f0
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xb4]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x70], xmm0
call fcn.006ff2f0
mov eax, dword [0x844c70]
mov ecx, dword [ebp + 0x18]
cvtsd2ss xmm0, xmm0
push 8
mulss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [ecx + eax + 0x89dc0]
mov ecx, dword [ebp + 8]
movss dword [ebp - 0x98], xmm0
call fcn.004f3e60
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x58]
push 8
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], edx
mov edx, dword [ebp - 0x54]
mov dword [ecx + eax + 4], edx
mov eax, dword [ebp + 8]
mov ecx, eax
add dword [eax + 0x28], 8
add dword [eax + 0x2c], 8
call fcn.004f3e60
mov eax, dword [ebp + 8]
movss xmm0, dword [ebp - 0x9c]
push 4
movss dword [ebp - 0x9c], xmm0
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
mov esi, dword [ebp + 8]
mov dword [ecx + eax + 4], edi
mov ecx, esi
add dword [esi + 0x28], 8
add dword [esi + 0x2c], 8
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x9c]
movss xmm0, dword [ebp - 0xb8]
mov dword [edx + ecx], eax
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
push 4
mov ecx, esi
movss dword [ebp - 0xb8], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xb8]
movss xmm0, dword [ebp - 0x1c]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss dword [ebp - 0xb4], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xb4]
movss xmm0, dword [ebp - 0x14]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss dword [ebp - 0xb0], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xb0]
mov edi, dword [ebp + 0x18]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
mov eax, dword [0x844c70]
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss xmm0, dword [edi + eax + 0x89fec]
movss dword [ebp - 0xac], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xac]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
mov eax, dword [0x844c70]
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss xmm0, dword [edi + eax + 0x89ff0]
movss dword [ebp - 0xa8], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xa8]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
mov eax, dword [0x844c70]
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss xmm0, dword [edi + eax + 0x89ff4]
movss dword [ebp - 0xa4], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xa4]
mov dword [edx + ecx], eax
lea eax, [ebp - 0x1a8]
mov ecx, dword [0x844c70]
add dword [esi + 0x28], 4
add ecx, 0x89ff8
add dword [esi + 0x2c], 4
add ecx, edi
push eax
call fcn.00524980
push 4
mov ecx, esi
movsd xmm0, qword [eax]
mulsd xmm0, qword [ebp - 0x7c]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0xa0], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xa0]
mov dword [edx + ecx], eax
lea eax, [ebp - 0x1b0]
mov ecx, dword [0x844c70]
add dword [esi + 0x28], 4
add ecx, 0x89ff8
add dword [esi + 0x2c], 4
add ecx, edi
push eax
call fcn.005249d0
push 4
mov ecx, esi
movsd xmm0, qword [eax]
mulsd xmm0, qword [ebp - 0x7c]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x12c], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x12c]
movss xmm0, dword [ebp - 0x4c]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss dword [ebp - 0x130], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x130]
movss xmm0, dword [ebp - 0x70]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss dword [ebp - 0x134], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x134]
movss xmm0, dword [ebp - 0xbc]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss dword [ebp - 0xbc], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xbc]
movss xmm0, dword [ebp - 0x98]
push 4
mov dword [edx + ecx], eax
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
movss dword [ebp - 0x98], xmm0
call fcn.004f3e60
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x98]
mov dword [edx + ecx], eax
mov ecx, dword [0x844c70]
add dword [esi + 0x28], 4
add ecx, 0x89ff8
add dword [esi + 0x2c], 4
add ecx, edi
call fcn.004e72f0
mov ecx, dword [ebp + 8]
mov esi, eax
push 4
call fcn.004f3e60
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x30]
mov dword [edx + ecx], esi
mov ecx, dword [0x844c70]
add dword [eax + 0x28], 4
add ecx, 0x89ff8
add dword [eax + 0x2c], 4
add ecx, edi
call fcn.00524960
mov ecx, dword [ebp + 8]
mov esi, eax
push 4
call fcn.004f3e60
mov eax, dword [ebp + 8]
push 1
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x30]
mov dword [edx + ecx], esi
mov esi, eax
mov eax, dword [0x844c70]
mov ecx, esi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
mov al, byte [edi + eax + 0x8a020]
mov byte [ebp + 0x1b], al
call fcn.004f3e60
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov dl, byte [ebp + 0x1b]
push 1
mov byte [ecx + eax], dl
mov eax, dword [0x844c70]
inc dword [esi + 0x28]
inc dword [esi + 0x2c]
mov al, byte [edi + eax + 0x8a021]
mov edi, esi
mov ecx, edi
mov byte [ebp + 0x1b], al
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dl, byte [ebp + 0x1b]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
inc ecx
mov dword [edi + 0x2c], ecx
and edx, 7
je 0x4f8788
mov esi, 8
mov ecx, edi
sub esi, edx
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov ecx, dword [edi + 0x2c]
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x5c], eax
cmp eax, esi
jb 0x4f8170
jmp 0x4f87a2
mov ecx, dword [edi + 0x2c]
mov esi, dword [ebp - 0x18]
mov eax, dword [edi]
mov edx, 4
mov dword [eax + 0x88], ecx
mov eax, esi
imul eax, dword [ebp - 0x38]
xor ecx, ecx
mov dword [ebp - 0x20], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00512870
mov dword [ebp - 0x3c], eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x30], eax
test esi, esi
je 0x4f89cf
mov dword [ebp - 0x34], eax
nop
add eax, dword [ebp - 0x2c]
mov edx, dword [0x844c70]
and eax, 0x1ff
mov dword [ebp - 0x14], eax
inc eax
and eax, 0x1ff
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, 0x89ba4
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x4c], eax
nop
mov ecx, dword [eax + edx]
mov dword [ebp - 0x24], ecx
test ecx, ecx
je 0x4f89a4
imul eax, dword [ebp - 0x14], 0x9a
movss xmm0, dword [0x76463c]
add eax, esi
mov esi, dword [edx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x1c], 0x9a
add eax, dword [ebp - 0x58]
mov eax, dword [edx + eax*4 + 0x89dec]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x528]
sub eax, 0
je 0x4f8873
sub eax, 1
je 0x4f8869
sub eax, 2
jne 0x4f887b
movss xmm0, dword [0x78ab94]
jmp 0x4f887b
movss xmm0, dword [0x78ab90]
jmp 0x4f887b
movss xmm0, dword [0x78ab8c]
mulss xmm0, dword [0x78ab98]
call fcn.006feff0
xor ecx, ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x84], esi
cmp esi, dword [ebp - 0x10]
je 0x4f8986
nop
xor eax, eax
mov word [ebp - 0x64], ax
mov byte [ebp - 0x62], al
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
mov eax, dword [ecx + esi*8]
mov edx, dword [ecx + esi*8 + 4]
mov cl, 0x3d
call fcn.006fefd0
mov byte [ebp - 0x64], al
mov ecx, 1
mov dword [ebp - 0x94], ecx
cmp al, 2
jne 0x4f88ea
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx]
mov al, byte [eax + esi*8]
add al, 8
movzx ecx, al
cmp al, 0x7f
mov eax, 0x7f
cmova ecx, eax
mov byte [ebp - 0x64], cl
jmp 0x4f8932
cmp al, 5
jne 0x4f88f4
mov byte [ebp - 0x64], 3
jmp 0x4f8932
cmp al, 6
jne 0x4f892e
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x5c]
mov eax, dword [ecx]
push eax
call fcn.0050b0c0
mov esi, dword [ebp - 0x84]
add esp, 0x18
test al, al
je 0x4f896a
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x4f8967
xor esi, esi
mov al, byte [ebp + esi - 0x64]
mov ecx, edi
push 1
mov byte [ebp + 0x1b], al
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
inc esi
mov eax, dword [edi + 0x30]
mov dl, byte [ebp + 0x1b]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
inc dword [edi + 0x2c]
mov ecx, dword [ebp - 0x94]
cmp esi, ecx
jb 0x4f8934
mov esi, dword [ebp - 0x84]
add dword [ebp - 0x54], ecx
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x5c]
mov esi, edx
mov dword [ebp - 0x84], esi
cmp esi, dword [ebp - 0x10]
jne 0x4f88a0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x3c]
add eax, edx
inc edx
mov dword [ebp - 0x70], edx
mov edx, dword [0x844c70]
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x58]
add eax, 4
inc esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x4c], eax
cmp eax, 0x89da4
jb 0x4f8810
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
inc eax
add dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f87e0
mov eax, dword [edi + 0x28]
and eax, 3
je 0x4f89ec
mov esi, 4
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x8c], ecx
xor eax, eax
mov dword [ebp + 0x18], eax
cmp dword [ebp - 0x20], eax
jbe 0x4f8a2d
mov ecx, dword [ebp - 0x3c]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0x18]
add dword [edi + 0x28], 4
inc eax
add dword [edi + 0x2c], 4
mov dword [ebp + 0x18], eax
cmp eax, dword [ebp - 0x20]
jb 0x4f8a01
call fcn.0050b590
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f8a4f
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x90], ecx
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x18], eax
jbe 0x4f8d12
mov dword [ebp - 0x10], eax
nop dword [eax + eax]
add eax, dword [ebp - 0x2c]
mov edx, dword [0x844c70]
and eax, 0x1ff
mov dword [ebp - 0x90], eax
inc eax
and eax, 0x1ff
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x78], eax
xor esi, esi
mov eax, 0x89ba4
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x14], eax
mov ecx, dword [eax + edx]
mov dword [ebp + 0x18], ecx
test ecx, ecx
je 0x4f8ce7
imul eax, dword [ebp - 0x90], 0x9a
add eax, esi
mov esi, dword [edx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x78], 0x9a
mov dword [ebp - 0x4c], esi
add eax, dword [ebp - 0x54]
cmp dword [ecx + 0x20], 0
mov eax, dword [edx + eax*4 + 0x89dec]
mov dword [ebp - 0x5c], eax
je 0x4f8aea
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x60]
jmp 0x4f8af3
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x40]
movss xmm0, dword [0x76463c]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x528]
sub eax, 0
je 0x4f8b27
sub eax, 1
je 0x4f8b1d
sub eax, 2
jne 0x4f8b2f
movss xmm0, dword [0x78ab94]
jmp 0x4f8b2f
movss xmm0, dword [0x78ab90]
jmp 0x4f8b2f
movss xmm0, dword [0x78ab8c]
mulss xmm0, dword [0x78ab98]
call fcn.006feff0
xor ecx, ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x88], esi
cmp esi, dword [ebp - 0x5c]
je 0x4f8cc9
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, dword [ecx + esi*8]
mov edx, dword [ecx + esi*8 + 4]
mov cl, 0x3d
call fcn.006fefd0
mov dword [ebp - 0x80], 1
xorps xmm0, xmm0
movq qword [ebp - 0x180], xmm0
movups xmmword [ebp - 0x190], xmm0
cmp eax, 6
jne 0x4f8bc3
push dword [ebp - 0x30]
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x80]
push dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x190]
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x70]
mov eax, dword [edx]
push eax
call fcn.0050af40
mov esi, dword [ebp - 0x88]
add esp, 0x20
test al, al
jne 0x4f8c4d
jmp 0x4f8caa
cmp eax, 1
je 0x4f8c11
test eax, eax
je 0x4f8c11
cmp eax, 4
jne 0x4f8c04
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x40]
mov eax, dword [edx]
mov edx, dword [eax + esi*8]
mov eax, dword [eax + esi*8 + 4]
shld eax, edx, 0x10
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x48]
shld ecx, eax, 0x10
shl edx, 0x10
shl eax, 0x10
sub edx, eax
mov eax, dword [ebp - 0x4c]
sbb eax, ecx
shrd edx, eax, 0x10
sar eax, 0x10
jmp 0x4f8c41
movlpd qword [ebp - 0x50], xmm0
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
jmp 0x4f8c41
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x30]
mov eax, dword [edx]
mov edx, dword [eax + esi*8]
mov esi, dword [eax + esi*8 + 4]
mov eax, dword [ebp - 0x34]
shld esi, edx, 0x10
shld ecx, eax, 0x10
shl edx, 0x10
shl eax, 0x10
sub edx, eax
sbb esi, ecx
shrd edx, esi, 0x10
sar esi, 0x10
mov eax, esi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x4c], eax
test ecx, ecx
je 0x4f8ca7
nop dword [eax]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + eax*8 - 0x190]
mov edi, dword [ebp + eax*8 - 0x18c]
push 8
call fcn.004f3e60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x4c], eax
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
cmp eax, ecx
jb 0x4f8c60
mov esi, dword [ebp - 0x88]
add dword [ebp - 0x58], ecx
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x70]
mov esi, edx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x88], esi
cmp esi, dword [ebp - 0x5c]
jne 0x4f8b53
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x3c]
add eax, edx
inc edx
mov dword [ebp - 0x1c], edx
mov edx, dword [0x844c70]
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x54]
add eax, 4
inc esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x14], eax
cmp eax, 0x89da4
jb 0x4f8aa1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
inc eax
add dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f8a70
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x94], eax
xor eax, eax
mov dword [ebp + 0x18], eax
cmp dword [ebp - 0x20], eax
jbe 0x4f8d5a
mov ecx, dword [ebp - 0x3c]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [edi + 0x2c]
inc eax
add dword [edi + 0x28], 4
add ecx, 4
mov dword [edi + 0x2c], ecx
mov dword [ebp + 0x18], eax
cmp eax, dword [ebp - 0x20]
jb 0x4f8d27
jmp 0x4f8d5d
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
mov dword [eax + 0x98], ecx
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x18], eax
jbe 0x4f8fa0
mov dword [ebp - 0x30], eax
nop word [eax + eax]
add eax, dword [ebp - 0x2c]
mov edx, dword [0x844c70]
and eax, 0x1ff
mov dword [ebp - 0x78], eax
inc eax
and eax, 0x1ff
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x90], eax
xor esi, esi
mov eax, 0x89ba4
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x6c], eax
mov ecx, dword [eax + edx]
mov dword [ebp + 0x18], ecx
test ecx, ecx
je 0x4f8f75
imul eax, dword [ebp - 0x78], 0x9a
movss xmm0, dword [0x76463c]
add eax, esi
mov esi, dword [edx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x90], 0x9a
add eax, dword [ebp - 0x40]
mov eax, dword [edx + eax*4 + 0x89dec]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 0
mov eax, dword [ecx + 0x528]
sub eax, 0
je 0x4f8e1e
sub eax, 1
je 0x4f8e14
sub eax, 2
jne 0x4f8e26
movss xmm0, dword [0x78ab94]
jmp 0x4f8e26
movss xmm0, dword [0x78ab90]
jmp 0x4f8e26
movss xmm0, dword [0x78ab8c]
mulss xmm0, dword [0x78ab98]
call fcn.006feff0
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x8c], esi
cmp esi, dword [ebp - 0x48]
je 0x4f8f57
nop word [eax + eax]
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, dword [ecx + esi*8]
mov edx, dword [ecx + esi*8 + 4]
mov cl, 0x3d
call fcn.006fefd0
mov edx, eax
mov ecx, 1
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xc4], eax
mov word [ebp - 0xc0], ax
cmp edx, 6
jne 0x4f8ebe
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0x34]
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0x1c]
mov eax, dword [ecx]
push eax
call fcn.0050ada0
mov esi, dword [ebp - 0x8c]
add esp, 0x1c
test al, al
je 0x4f8f3b
mov ecx, dword [ebp - 0x28]
jmp 0x4f8ef8
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
mov edi, 0x1fff
mov ax, word [eax + esi*8 + 6]
and ax, di
mov edi, dword [ebp + 8]
movzx eax, ax
cmp edx, 3
je 0x4f8ee4
cmp edx, 5
je 0x4f8ee4
mov edx, eax
jmp 0x4f8ef1
movzx edx, word [ebp - 0x44]
lea eax, [edx + 1]
movzx eax, ax
mov dword [ebp - 0x44], eax
mov word [ebp - 0xc4], dx
xor eax, eax
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x4f8f38
movzx esi, word [ebp + eax*2 - 0xc4]
mov ecx, edi
push 2
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov word [ecx + eax], si
mov eax, dword [ebp - 0x14]
add dword [edi + 0x28], 2
inc eax
add dword [edi + 0x2c], 2
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
cmp eax, ecx
jb 0x4f8f01
mov esi, dword [ebp - 0x8c]
add dword [ebp - 0x10], ecx
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x1c]
mov esi, edx
mov dword [ebp - 0x8c], esi
cmp esi, dword [ebp - 0x48]
jne 0x4f8e50
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x3c]
add eax, edx
inc edx
mov dword [ebp - 0x60], edx
mov edx, dword [0x844c70]
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x40]
add eax, 4
inc esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x6c], eax
cmp eax, 0x89da4
jb 0x4f8db1
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
inc eax
add dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f8d80
mov eax, dword [edi + 0x28]
and eax, 3
je 0x4f8fbd
mov esi, 4
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x9c], ecx
xor eax, eax
mov dword [ebp + 0x18], eax
cmp dword [ebp - 0x20], eax
jbe 0x4f9005
mov ecx, dword [ebp - 0x3c]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [edi + 0x2c]
inc eax
add dword [edi + 0x28], 4
add ecx, 4
mov dword [edi + 0x2c], ecx
mov dword [ebp + 0x18], eax
cmp eax, dword [ebp - 0x20]
jb 0x4f8fd2
jmp 0x4f9008
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
mov dword [eax + 0xa0], ecx
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x18], eax
jbe 0x4f91d9
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x5c], 0x1000000
nop dword [eax + eax]
add eax, dword [ebp - 0x2c]
and eax, 0x1ff
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x78], eax
inc eax
and eax, 0x1ff
xor esi, esi
mov dword [ebp - 0x90], eax
mov eax, 0x89ba4
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x60], eax
nop dword [eax + eax]
mov ecx, dword [0x844c70]
mov edx, dword [eax + ecx]
mov dword [ebp - 0x6c], edx
test edx, edx
je 0x4f91ae
imul eax, dword [ebp - 0x78], 0x9a
movss xmm0, dword [0x76463c]
add eax, esi
mov esi, dword [ecx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x90], 0x9a
add eax, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4 + 0x89dec]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 0x528]
sub eax, 0
je 0x4f90cc
sub eax, 1
je 0x4f90c2
sub eax, 2
jne 0x4f90d4
movss xmm0, dword [0x78ab94]
jmp 0x4f90d4
movss xmm0, dword [0x78ab90]
jmp 0x4f90d4
movss xmm0, dword [0x78ab8c]
mulss xmm0, dword [0x78ab98]
call fcn.006feff0
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x68], esi
cmp esi, dword [ebp - 0x1c]
je 0x4f9196
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov eax, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
mov dword [ebp - 0x70], eax
shr eax, 0x1d
mov dword [ebp + 0x18], ecx
mov dword [ebp - 0x4c], eax
cmp eax, 3
je 0x4f911c
cmp eax, 5
je 0x4f911c
cmp eax, 6
jne 0x4f917d
mov byte [ebp + 0xf], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xcc], xmm0
cmp eax, 6
jne 0x4f9746
lea eax, [ebp + 0xf]
push eax
lea eax, [ebp - 0xcc]
push eax
push dword [ebp - 0x34]
lea eax, [ebp - 0x68]
push eax
push dword [ebp - 0x14]
push edx
call fcn.0050aec0
add esp, 0x18
test al, al
je 0x4f917a
cmp byte [ebp + 0xf], 0
jne 0x4f9163
xor ecx, ecx
jmp 0x4f97c5
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x4c]
mov dword [ebp + 0x18], ecx
jmp 0x4f975c
mov esi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x24]
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x14]
mov esi, edx
mov dword [ebp - 0x68], esi
cmp esi, dword [ebp - 0x1c]
jne 0x4f90f5
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x3c]
add eax, edx
inc edx
mov dword [ebp - 0x48], edx
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x60]
mov esi, dword [ebp - 0x40]
add eax, 4
inc esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x60], eax
cmp eax, 0x89da4
jb 0x4f9060
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
inc eax
add dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f9030
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0xa4], eax
xor eax, eax
mov dword [ebp + 0x18], eax
cmp dword [ebp - 0x20], eax
jbe 0x4f921c
nop
mov ecx, dword [ebp - 0x3c]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0x18]
add dword [edi + 0x28], 4
inc eax
add dword [edi + 0x2c], 4
mov dword [ebp + 0x18], eax
cmp eax, dword [ebp - 0x20]
jb 0x4f91f0
push dword [ebp - 0x3c]
call fcn.00512900
add esp, 4
call fcn.0050b7e0
mov ecx, dword [edi]
mov esi, eax
mov dword [ebp - 0x14], esi
mov edx, dword [esi + 4]
sub edx, dword [esi]
sar edx, 2
mov dword [ecx + 0xac], edx
mov eax, dword [edi + 0x28]
and eax, 3
je 0x4f9264
mov ecx, 4
sub ecx, eax
mov dword [ebp + 0x18], ecx
push ecx
mov ecx, edi
call fcn.004f3e60
mov eax, dword [ebp + 0x18]
add dword [edi + 0x28], eax
add dword [edi + 0x2c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0xa8], ecx
xor ecx, ecx
mov eax, dword [esi + 4]
mov edx, dword [esi]
sub eax, edx
sar eax, 2
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x4f9461
mov ecx, dword [edx + ecx*4]
mov dword [ebp + 0x18], ecx
test ecx, ecx
je 0x4f99c3
lea eax, [ebp - 0xec]
mov dword [ebp - 0xf0], 0x20
mov dword [ebp - 0xf8], eax
mov esi, ecx
mov dword [ebp - 4], 7
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4f92b6
sub esi, edx
xor edx, edx
mov dword [ebp - 0xf4], edx
cmp esi, 0x20
jbe 0x4f92ea
push 1
push esi
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0xf8]
call fcn.00524200
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xf8]
lea edi, [edx + eax]
mov dword [ebp + 0x18], edi
lea edi, [ecx + esi]
cmp ecx, edi
mov edi, dword [ebp + 8]
je 0x4f9319
push esi
push ecx
push dword [ebp + 0x18]
call fcn.00700d60
mov edx, dword [ebp - 0xf4]
add esp, 0xc
mov eax, dword [ebp - 0xf8]
add edx, esi
mov dword [ebp - 0xf4], edx
lea ecx, [edx + eax]
mov dword [ebp - 4], 8
mov esi, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0x18], esi
cmp esi, ecx
je 0x4f939d
mov edi, ecx
nop dword [eax]
movzx eax, byte [esi]
push eax
call fcn.00716580
add esp, 4
test eax, eax
je 0x4f9355
inc esi
cmp esi, edi
jne 0x4f9340
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xf4]
mov edi, dword [ebp + 8]
mov dword [ebp + 0x18], esi
cmp esi, ecx
je 0x4f939d
lea eax, [esi + 1]
mov dword [ebp - 0x78], eax
cmp eax, ecx
je 0x4f939d
mov edi, eax
movzx eax, byte [edi]
push eax
call fcn.00716580
add esp, 4
test eax, eax
je 0x4f9389
mov al, byte [edi]
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 0x10]
inc edi
cmp edi, ecx
jne 0x4f9374
mov edx, dword [ebp - 0xf4]
mov edi, dword [ebp + 8]
mov dword [ebp + 0x18], esi
mov esi, dword [ebp - 0xf8]
add esi, edx
sub esi, ecx
push esi
push ecx
push dword [ebp + 0x18]
call fcn.00700d60
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0xf8]
add eax, esi
sub eax, ecx
mov dword [ebp - 0xf4], eax
lea edx, [eax + 1]
cmp edx, dword [ebp - 0xf0]
jbe 0x4f93f3
push 1
push edx
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0xf8]
call fcn.00524200
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf8]
mov byte [eax + ecx], 0
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0xf8]
mov ecx, edi
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
mov dword [edx + ecx], eax
lea ecx, [ebp - 0xec]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [ebp - 0xf8]
cmp eax, ecx
je 0x4f9445
push eax
call fcn.00512900
add esp, 4
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [esi]
inc ecx
sub eax, edx
mov dword [ebp - 0x1c], ecx
sar eax, 2
cmp ecx, eax
jb 0x4f9286
call fcn.0050b6d0
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f9483
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0xb4], ecx
mov eax, dword [edi]
mov dword [eax + 0xb0], 0
mov eax, dword [edi + 0x28]
and eax, 7
test eax, eax
je 0x4f94b9
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0xbc], ecx
mov eax, dword [edi]
mov dword [eax + 0xb8], 0
cmp byte [0x84517c], 0
je 0x4f96da
cmp byte [0x844c50], 0
je 0x4f96da
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4f9507
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0x10], 0
mov dword [eax + 0xc4], ecx
call fcn.005102e0
mov ecx, eax
call fcn.004a5e40
mov esi, eax
lea eax, [ebp - 0x178]
push eax
mov ecx, esi
call fcn.0050ff30
lea eax, [ebp - 0x1a0]
mov ecx, esi
push eax
call fcn.0050ff90
lea eax, [ebp - 0x1a0]
push eax
lea ecx, [ebp - 0x178]
call fcn.0050fe80
test al, al
je 0x4f96cf
nop dword [eax]
lea eax, [ebp - 0x160]
push eax
lea ecx, [ebp - 0x178]
call fcn.0050fec0
mov eax, dword [ebp - 0x15c]
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x160]
mov dword [ebp + 0x18], eax
xor eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], eax
nop dword [eax]
movzx esi, word [ecx + eax*2]
mov ecx, edi
push 2
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov word [ecx + eax], si
mov eax, dword [ebp - 0x14]
add dword [edi + 0x28], 2
inc eax
add dword [edi + 0x2c], 2
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
cmp eax, 0x10
jl 0x4f9590
mov esi, dword [ebp + 0x18]
mov ecx, edi
push 4
mov esi, dword [esi]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov ecx, edi
mov eax, dword [ebp + 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [eax + 0x10]
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 8
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov ecx, dword [ebp + 8]
movq xmm0, qword [eax + 8]
movq qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x78]
call fcn.004f3e60
mov edx, dword [ebp + 8]
push 8
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov ecx, edx
mov eax, dword [ebp + 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
movq xmm0, qword [eax + 0x18]
movq qword [ebp + 0x14], xmm0
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
call fcn.004f3e60
mov eax, dword [ebp + 8]
push 1
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], edi
mov edi, dword [ebp + 8]
mov ecx, edi
mov eax, dword [ebp - 0x1c]
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
mov al, byte [eax + 0x20]
mov byte [ebp + 0x1b], al
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dl, byte [ebp + 0x1b]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
mov eax, dword [edi + 0x28]
inc dword [edi + 0x2c]
and eax, 7
je 0x4f96aa
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004f3e60
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
lea ecx, [ebp - 0x178]
call fcn.0050fef0
lea eax, [ebp - 0x1a0]
push eax
lea ecx, [ebp - 0x178]
call fcn.0050fe80
test al, al
jne 0x4f9560
mov eax, dword [edi]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0xc0], ecx
mov ecx, edi
call fcn.004f3cc0
mov eax, dword [0x844c70]
mov ecx, dword [ebp - 0x150]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x154]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0x158]
mov dword [eax + 0x88], ecx
cmp byte [0xa902b2], 0
mov ecx, dword [0x8f029c]
je 0x4f99fb
cmp byte [0x8f028c], 0
je 0x4f99fb
test cl, cl
je 0x4f9a32
cmp cl, 6
jb 0x4f9a32
shr ecx, 8
cmp cl, 3
jb 0x4f9a32
jmp 0x4f99ff
mov edx, dword [ebp - 0x70]
movzx edx, dx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc8], edx
mov byte [ebp + 0xf], 1
mov dword [ebp - 0x4c], edx
cmp eax, 5
jne 0x4f9769
mov ecx, dword [ebp + 0x18]
jmp 0x4f97c8
mov eax, dword [0x844c70]
mov esi, 0x800000
mov eax, dword [eax + 0xdae68]
cmp byte [0x844c60], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [0x844c70]
cmovne esi, dword [ebp - 0x5c]
movq xmm0, qword [eax + 0xdae70]
movq qword [ebp - 0x74], xmm0
mov eax, dword [ebp - 0x74]
mov dword [ebp + 0x18], eax
sub dword [ebp + 0x18], ecx
mov eax, dword [ebp - 0x70]
sbb eax, edx
test eax, eax
jb 0x4f97b6
ja 0x4f97b2
cmp dword [ebp + 0x18], esi
jbe 0x4f97b6
xor ecx, ecx
jmp 0x4f97c5
push 0
push esi
push edx
push ecx
call fcn.006ffa20
mov ecx, eax
add ecx, dword [ebp - 0x4c]
mov dword [ebp + 0x18], ecx
test ecx, ecx
je 0x4f9996
lea eax, [ebp - 0x118]
mov dword [ebp - 0x11c], 0x20
mov dword [ebp - 0x124], eax
mov esi, ecx
mov dword [ebp - 4], 0
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4f97f2
sub esi, edx
xor edx, edx
mov dword [ebp - 0x120], edx
cmp esi, 0x20
jbe 0x4f9826
push 1
push esi
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x124]
call fcn.00524200
mov edx, dword [ebp - 0x120]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x124]
lea edi, [edx + eax]
mov dword [ebp + 0x18], edi
lea edi, [ecx + esi]
cmp ecx, edi
mov edi, dword [ebp + 8]
je 0x4f9855
push esi
push ecx
push dword [ebp + 0x18]
call fcn.00700d60
mov edx, dword [ebp - 0x120]
add esp, 0xc
mov eax, dword [ebp - 0x124]
add edx, esi
mov dword [ebp - 0x120], edx
lea ecx, [eax + edx]
mov dword [ebp - 4], 1
mov esi, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0x18], esi
cmp esi, ecx
je 0x4f98d9
mov edi, ecx
movzx eax, byte [esi]
push eax
call fcn.00716580
add esp, 4
test eax, eax
je 0x4f988a
inc esi
cmp esi, edi
jne 0x4f9875
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x120]
mov edi, dword [ebp + 8]
mov dword [ebp + 0x18], esi
cmp esi, ecx
je 0x4f98d9
lea eax, [esi + 1]
mov dword [ebp - 0x4c], eax
cmp eax, ecx
je 0x4f98d9
mov edi, eax
nop dword [eax]
movzx eax, byte [edi]
push eax
call fcn.00716580
add esp, 4
test eax, eax
je 0x4f98c5
mov al, byte [edi]
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 0x10]
inc edi
cmp edi, ecx
jne 0x4f98b0
mov edx, dword [ebp - 0x120]
mov edi, dword [ebp + 8]
mov dword [ebp + 0x18], esi
mov esi, dword [ebp - 0x124]
add esi, edx
sub esi, ecx
push esi
push ecx
push dword [ebp + 0x18]
call fcn.00700d60
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x124]
add eax, esi
sub eax, ecx
mov dword [ebp - 0x120], eax
lea edx, [eax + 1]
cmp edx, dword [ebp - 0x11c]
jbe 0x4f992f
push 1
push edx
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x124]
call fcn.00524200
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x124]
mov byte [eax + ecx], 0
lea eax, [ebp - 0x148]
push eax
push dword [ebp - 0x124]
mov ecx, edi
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x30]
mov eax, dword [ebp - 0x148]
mov dword [ebp - 4], 0xffffffff
mov dword [edx + ecx], eax
lea ecx, [ebp - 0x118]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [ebp - 0x124]
cmp eax, ecx
je 0x4f99b4
push eax
call fcn.00512900
mov ecx, dword [ebp - 0x24]
add esp, 4
mov esi, dword [ebp - 0x68]
inc ecx
mov dword [ebp - 0x24], ecx
jmp 0x4f9180
push 4
mov ecx, edi
call fcn.004f3e60
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov dword [ecx + eax], 0xffffffff
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x68]
inc ecx
mov dword [ebp - 0x24], ecx
jmp 0x4f9180
lea eax, [ebp - 0x14c]
mov ecx, edi
push eax
push 0x757eea
call fcn.004fd4f0
push 4
mov ecx, edi
call fcn.004f3e60
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x14c]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
jmp 0x4f9448
test cl, cl
je 0x4f9a32
mov dword [ebp + 8], 0x71344ff
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x38]
sub ecx, 0x69a99a7
shr eax, 0xa
push eax
mov eax, dword [edi + 0x2c]
shr eax, 0xa
push eax
push ecx
push dword [0x8f02a0]
push dword [0x8f029c]
call fcn.00513ba0
add esp, 0x14
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret