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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7335f1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b4
mov eax, dword [0x8354c0]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x28], esi
mov ecx, dword [eax + 0x88]
mov dword [ebp - 0x164], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x15c], 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 - 0x160], ecx
mov dword [ebp + 0x18], esi
jne 0x4ddd75
rdtsc
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x18], edx
call fcn.004e4070
mov ecx, eax
call fcn.006f2b60
movss xmm1, dword [0x7560e4]
cvtsd2ss xmm0, xmm0
mov edi, dword [ebp + 8]
mov eax, dword [edi]
divss xmm1, xmm0
movss dword [eax + 0x10], xmm1
mov eax, dword [0x8354c0]
mov eax, dword [eax + 0x166ea0]
test eax, eax
jne 0x4dddb3
mov eax, 0x3b9aca00
xor edx, edx
jmp 0x4dddb5
call eax
mov ecx, eax
call fcn.006f2b60
movss xmm1, dword [0x7560e4]
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 [0x8354c0]
mov esi, dword [edi]
sub ecx, dword [eax + 0x20]
sbb edx, dword [eax + 0x24]
call fcn.006f2b00
cvtsd2ss xmm0, xmm0
lea eax, [ebp - 0x178]
push eax
mulss xmm0, dword [esi + 0x10]
movss dword [esi + 0x18], xmm0
call fcn.00704f50
mov eax, dword [edi]
add esp, 4
mov ecx, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov eax, dword [0x8354c0]
mov ecx, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x28], eax
mov eax, dword [0x8354c0]
mov ecx, dword [edi]
mov eax, dword [eax + 0x2b4]
mov dword [ecx + 0x2c], eax
mov eax, dword [0x8354c0]
mov ecx, dword [eax + 0x166eb0]
test ecx, ecx
je 0x4dde53
push dword [eax + 0x166eb4]
call ecx
add esp, 4
mov eax, dword [edi]
mov ecx, edi
add eax, 0xc
push eax
push dword [ebp + 0x10]
call fcn.004e4170
mov eax, dword [edi]
mov ecx, edi
add eax, 0x40
push eax
mov eax, dword [0x8354c0]
push dword [eax + 0x166eac]
call fcn.004e4170
mov eax, dword [0x8354c0]
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 [0x8354c0]
cmp dword [eax + 8], 0
jbe 0x4ddeee
xor esi, esi
add eax, 0x2b8
lea ecx, [ebp - 0x150]
push ecx
add eax, esi
mov ecx, edi
push eax
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov edx, dword [edi + 0x28]
add esi, 0x48
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x150]
mov dword [edx + ecx], eax
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x8354c0]
inc ecx
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov dword [ebp + 0x18], ecx
cmp ecx, dword [eax + 8]
jb 0x4ddea4
mov ecx, dword [edi]
mov eax, dword [eax + 4]
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4ddf13
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 0x4de0c6
xor ecx, ecx
mov edx, 0x38278
mov dword [ebp - 0x4c], ecx
mov dword [ebp + 0x18], edx
nop dword [eax + eax]
mov eax, dword [0x8354c0]
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.004da8b0
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 [0x8354c0]
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.004da8b0
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.004da8b0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], esi
lea eax, [ebp - 0x14c]
mov esi, dword [ebp + 8]
mov ecx, esi
push eax
push edi
add dword [esi + 0x28], 4
add dword [esi + 0x2c], 4
call fcn.004e4170
push 4
mov ecx, esi
call fcn.004da8b0
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x14c]
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.004da8b0
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.004da8b0
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.004da8b0
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.004da8b0
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 0x4de0a2
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 - 0x4c]
add edx, 8
add ecx, 0x5c
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x18], edx
mov dword [ebp - 0x4c], ecx
cmp eax, dword [esi + 0x4c]
jb 0x4ddf40
mov eax, dword [0x8354c0]
mov eax, dword [eax]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4de0ed
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 [0x8354c0]
mov dword [ebp - 0x3c], eax
cmp dword [eax], 0
jbe 0x4de3c6
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.004da8b0
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 [0x8354c0]
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.004da8b0
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 [0x8354c0]
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.004da8b0
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 [0x8354c0]
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.004da8b0
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 [0x8354c0]
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.004da8b0
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 [0x8354c0]
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.004da8b0
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 [0x8354c0]
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.004da8b0
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 - 0x3c]
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.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov ecx, edi
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x20]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [esi + eax + 0x1884]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [ebp - 0x3c]
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.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov ecx, edi
mov eax, dword [0x8354c0]
mov esi, dword [ebp - 0x2c]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [esi + eax + 0x2bc80]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
lea eax, [ebp - 0x130]
mov ecx, dword [ebp - 0x20]
add dword [edi + 0x28], 4
add ecx, 0x1888
add dword [edi + 0x2c], 4
push eax
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov ecx, edi
push eax
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x130]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
mov esi, dword [edi + 0x28]
mov eax, esi
add dword [edi + 0x2c], 4
and eax, 7
je 0x4de393
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov esi, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
inc edx
add dword [ebp + 0x18], 8
add ecx, 0x10
add dword [ebp - 0x20], 0x60
mov dword [ebp - 0x4c], eax
mov eax, dword [0x8354c0]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], eax
cmp edx, dword [eax]
jb 0x4de120
mov ecx, dword [ebp - 0x4c]
jmp 0x4de3cc
mov esi, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
xor edx, edx
and esi, 7
mov dword [ebp - 0x3c], edx
mov dword [ebp + 0x18], esi
je 0x4de3f4
mov esi, 8
mov ecx, edi
sub esi, dword [ebp + 0x18]
push esi
call fcn.004da8b0
add dword [edi + 0x2c], esi
add dword [edi + 0x28], esi
xor edx, edx
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
mov dword [eax + 0x60], ecx
mov ecx, 0x89ba4
mov dword [ebp + 0x18], ecx
mov eax, dword [0x8354c0]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4de51f
mov esi, dword [eax + 0x24]
inc edx
push 8
mov ecx, edi
mov dword [ebp - 0x3c], edx
call fcn.004da8b0
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 - 0x148]
add dword [edi + 0x28], 8
mov ecx, edi
add dword [edi + 0x2c], 8
push eax
lea eax, [esi + 0x4e8]
push eax
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x148]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [esi + 0x528]
movss xmm0, dword [0x755854]
sub eax, 0
je 0x4de4a6
sub eax, 1
je 0x4de49c
sub eax, 2
jne 0x4de4ae
movss xmm0, dword [0x77b0d4]
jmp 0x4de4ae
movss xmm0, dword [0x77b0d0]
jmp 0x4de4ae
movss xmm0, dword [0x77b0cc]
mulss xmm0, dword [0x77b0d8]
call fcn.006f2860
push 4
mov ecx, edi
mov esi, eax
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
push 4
mov dword [edx + ecx], esi
mov eax, dword [0x8354c0]
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.004da8b0
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 0x4de51c
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp - 0x3c]
add ecx, 4
mov dword [ebp + 0x18], ecx
cmp ecx, 0x89da4
jl 0x4de401
mov eax, dword [edi]
mov ecx, edx
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 [0x8354c0]
nop dword [eax + eax]
cmp dword [edx + eax], 0
je 0x4de5b8
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.004da8b0
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 [0x8354c0]
add ecx, 8
mov dword [ebp - 0x28], ecx
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
cmp ecx, 0x4e8
jb 0x4de570
add edx, 4
mov dword [ebp + 0x18], edx
cmp edx, 0x89da4
jl 0x4de560
mov ecx, dword [edi]
mov eax, dword [eax + 0xe3e78]
mov dword [ecx + 0x6c], eax
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4de5ee
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 [0x8354c0]
cmp dword [edx + 0xe3e78], 0
jbe 0x4de86f
mov eax, 0x165e88
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x2c], eax
nop
movq xmm0, qword [eax + edx - 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.004da8b0
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 [0x8354c0]
mov edi, dword [ebp - 0x2c]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [edi + eax]
mov edi, dword [edi + eax + 4]
call fcn.004da8b0
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 [0x8354c0]
mov ecx, dword [ebp - 0x2c]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax - 0x1000]
mov edi, dword [ecx + eax - 0xffc]
mov ecx, edx
call fcn.004da8b0
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 [0x8354c0]
mov ecx, dword [ebp - 0x18]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
mov esi, dword [ecx + eax + 0xdee90]
mov edi, dword [ecx + eax + 0xdee94]
mov ecx, edx
call fcn.004da8b0
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 [0x8354c0]
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
mov esi, dword [esi + eax + 0xdee78]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [ecx + eax + 0xdee7c]
mov ecx, edi
call fcn.004da8b0
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 [0x8354c0]
mov ecx, dword [ebp - 0x18]
push 4
mov esi, dword [ecx + eax + 0xdee80]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [ecx + eax + 0xdee8c]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
lea ecx, [ebp - 0x12c]
mov eax, dword [0x8354c0]
mov esi, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
push ecx
push dword [esi + eax + 0xdee88]
mov ecx, edi
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x12c]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
mov eax, dword [0x8354c0]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [esi + eax + 0xdee98]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 1
mov dword [ecx + eax], esi
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x18]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov al, byte [ecx + eax + 0xdee86]
mov ecx, edi
mov byte [ebp + 0x1b], al
call fcn.004da8b0
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 0x4de849
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov ecx, dword [ebp - 0x28]
mov edx, dword [0x8354c0]
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 + 0xe3e78]
jb 0x4de620
mov ecx, dword [edi]
mov eax, dword [edx + 0xe4e80]
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 [0x8354c0]
mov dword [ebp - 0x6c], ecx
cmp dword [esi + 0xe3e78], ecx
jbe 0x4de99e
xor edx, edx
mov eax, 0x164e88
mov dword [ebp - 0x7c], edx
mov dword [ebp + 0x18], eax
nop word [eax + eax]
test dword [edx + esi + 0xdee8c], 1
je 0x4de982
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 - 0x64], edx
mov eax, dword [eax + esi]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + esi + 4]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0xe4e80]
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 + 0xe4e88]
mov esi, dword [esi + eax*8 + 0xe4e8c]
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jl 0x4de923
jg 0x4de91f
cmp edx, ecx
jbe 0x4de923
mov ecx, edx
mov esi, eax
cmp dword [ebp - 0x4c], esi
jg 0x4de935
jl 0x4de92f
cmp dword [ebp - 0x28], ecx
jae 0x4de935
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x4c]
sub ecx, edx
mov dword [ebp - 0x50], ecx
mov ecx, edi
push 8
sbb esi, eax
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov edx, dword [ebp - 0x50]
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 [0x8354c0]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x10], eax
cmp eax, 0x80
jae 0x4de97c
mov edx, dword [ebp - 0x64]
jmp 0x4de8f6
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x7c]
inc ecx
add eax, 8
add edx, 0x28
mov dword [ebp - 0x6c], ecx
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x7c], edx
cmp ecx, dword [esi + 0xe3e78]
jb 0x4de8b0
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 - 0x40], edx
xor eax, eax
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x2c], eax
cmp ecx, edx
jb 0x4deb21
nop word [eax + eax]
mov ecx, dword [esi + 0x89da8]
sub ecx, edx
mov dword [ebp - 0x48], 0
mov eax, ecx
and eax, 0x1ff
imul edx, eax, 0x278
lea eax, [ecx + 1]
and eax, 0x1ff
imul eax, eax, 0x278
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 - 0x24], edi
mov dword [ebp - 0x50], eax
add eax, edi
mov eax, dword [eax + esi]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4deadb
cmp byte [esi + 0x166ec4], 0
jne 0x4deabf
cmp byte [0x835448], 0
jne 0x4deabf
mov eax, dword [eax + 0x528]
mov esi, dword [edi]
movss xmm0, dword [0x755854]
mov dword [ebp - 0x1c], esi
sub eax, 0
je 0x4dea76
sub eax, 1
je 0x4dea6c
sub eax, 2
jne 0x4dea7e
movss xmm0, dword [0x77b0d4]
jmp 0x4dea7e
movss xmm0, dword [0x77b0d0]
jmp 0x4dea7e
movss xmm0, dword [0x77b0cc]
mulss xmm0, dword [0x77b0d8]
call fcn.006f2860
mov ecx, dword [ebp - 0x10]
mov edi, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [eax + ecx]
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 0x4deb17
mov esi, dword [0x8354c0]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x10]
cmp eax, dword [edi + ecx]
mov ecx, dword [ebp - 0x18]
cmovne ecx, edx
mov dword [ebp - 0x18], ecx
jmp 0x4deae1
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
add edi, 4
inc eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x48], eax
cmp eax, 0x80
mov eax, dword [ebp - 0x50]
jb 0x4dea16
mov eax, dword [ebp - 0x2c]
inc edx
mov dword [ebp - 0x18], ecx
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x2c], eax
cmp edx, ecx
jbe 0x4de9d0
jmp 0x4deb1e
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 [0x8354c0]
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 0x4deb71
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 [0x8354c0]
mov eax, dword [ecx + 0x89da8]
sub eax, edx
and eax, 0x1ff
mov dword [ebp - 0x2c], eax
imul eax, eax, 0x278
mov edx, dword [eax + ecx + 0x89ddc]
mov esi, dword [eax + ecx + 0x89dd8]
mov dword [ebp - 0x48], edx
mov edx, dword [eax + ecx + 0x89de0]
mov eax, dword [eax + ecx + 0x89de4]
mov dword [ebp - 0x64], eax
mov eax, dword [edi]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x78], edx
movss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x20], xmm0
call fcn.004e4070
mov ecx, dword [edi]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov eax, dword [0x8354c0]
mov eax, dword [eax + 0x166ea0]
test eax, eax
jne 0x4debfb
mov eax, 0x3b9aca00
xor edx, edx
jmp 0x4debfd
call eax
mov ecx, dword [edi]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
cmp byte [0xa82632], 0
je 0x4dec1b
cmp byte [0x835598], 0
mov byte [ebp + 0xf], 1
jne 0x4dec1f
mov byte [ebp + 0xf], 0
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x18], eax
jbe 0x4df345
mov edx, dword [ebp - 0x48]
mov ecx, esi
movsd xmm0, qword [0x74e650]
shld edx, ecx, 0x10
movsd qword [ebp - 0x74], xmm0
shl ecx, 0x10
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x64]
shld edx, ecx, 0x10
shl ecx, 0x10
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], ecx
nop
add eax, dword [ebp - 0x2c]
mov edx, dword [0x8354c0]
and eax, 0x1ff
imul esi, eax, 0x278
lea ecx, [eax + 1]
and ecx, 0x1ff
mov dword [ebp - 0x34], esi
mov eax, dword [esi + edx + 0x89dd8]
mov dword [ebp - 0x5c], eax
mov eax, dword [esi + edx + 0x89ddc]
mov dword [ebp - 0x60], eax
imul eax, ecx, 0x278
mov ecx, dword [ebp - 0x34]
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 - 0x34]
mov ecx, dword [eax + edx + 0x89de4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x54], ecx
mov ecx, dword [eax + edx + 0x89de0]
mov eax, dword [eax + edx + 0x89de4]
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + edx + 0x89dd0]
movss xmm0, dword [ecx + edx + 0x89dc4]
mov dword [ebp - 0xb0], eax
mov eax, dword [ecx + edx + 0x89dd4]
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + edx + 0x89dc8]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx + edx + 0x89dcc]
mov dword [ebp - 0x9c], eax
call fcn.006f28b0
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0xb4], edx
mov edx, dword [ebp - 0x60]
shld edx, ecx, 0x10
mov dword [ebp - 0xb8], eax
shl ecx, 0x10
sub ecx, dword [ebp - 0x40]
sbb edx, dword [ebp - 0x24]
shrd ecx, edx, 0x10
sar edx, 0x10
call fcn.006f2b60
shld esi, edi, 0x10
cvtsd2ss xmm0, xmm0
shl edi, 0x10
sub edi, dword [ebp - 0x40]
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 - 0xa4], xmm0
call fcn.006f2b60
mov esi, dword [ebp - 0x1c]
mov ecx, esi
mov edi, dword [ebp - 0x54]
mov edx, edi
shld edx, ecx, 0x10
cvtsd2ss xmm0, xmm0
shl ecx, 0x10
sub ecx, dword [ebp - 0x10]
sbb edx, dword [ebp - 0x30]
shrd ecx, edx, 0x10
mulss xmm0, dword [ebp - 0x20]
sar edx, 0x10
movss dword [ebp - 0xbc], xmm0
call fcn.006f2b60
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x88]
cvtsd2ss xmm0, xmm0
shld eax, ecx, 0x10
mulss xmm0, dword [ebp - 0x38]
shl ecx, 0x10
movss dword [ebp - 0x1c], xmm0
sub ecx, dword [ebp - 0x10]
sbb eax, dword [ebp - 0x30]
shrd ecx, eax, 0x10
sar eax, 0x10
mov edx, eax
call fcn.006f2b60
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa8]
shld eax, ecx, 0x10
cvtsd2ss xmm0, xmm0
shl ecx, 0x10
sub ecx, dword [ebp - 0x40]
sbb eax, dword [ebp - 0x24]
shrd ecx, eax, 0x10
mulss xmm0, dword [ebp - 0x38]
sar eax, 0x10
mov edx, eax
movss dword [ebp - 0x88], xmm0
call fcn.006f2b60
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
shld eax, ecx, 0x10
cvtsd2ss xmm0, xmm0
shl ecx, 0x10
sub ecx, dword [ebp - 0x40]
sbb eax, dword [ebp - 0x24]
shrd ecx, eax, 0x10
mulss xmm0, dword [ebp - 0x20]
sar eax, 0x10
mov edx, eax
movss dword [ebp - 0x9c], xmm0
call fcn.006f2b60
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x14], xmm0
call fcn.006f2b60
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x34]
cvtsd2ss xmm0, xmm0
push 8
mulss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [ecx + eax + 0x89dc0]
mov ecx, dword [ebp + 8]
movss dword [ebp - 0xc0], xmm0
call fcn.004da8b0
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x5c]
push 8
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov dword [ecx + eax], edx
mov edx, dword [ebp - 0x60]
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.004da8b0
mov eax, dword [ebp + 8]
movss xmm0, dword [ebp - 0xa4]
push 4
movss dword [ebp - 0xa4], xmm0
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
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xa4]
movss xmm0, dword [ebp - 0xbc]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
push 4
mov ecx, edi
movss dword [ebp - 0xbc], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xbc]
movss xmm0, dword [ebp - 0x1c]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss dword [ebp - 0xb8], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xb8]
movss xmm0, dword [ebp - 0x88]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss dword [ebp - 0xb4], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp - 0x34]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
mov eax, dword [0x8354c0]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss xmm0, dword [esi + eax + 0x89fec]
movss dword [ebp - 0xb0], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xb0]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
mov eax, dword [0x8354c0]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss xmm0, dword [esi + eax + 0x89ff0]
movss dword [ebp - 0xac], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xac]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
mov eax, dword [0x8354c0]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss xmm0, dword [esi + eax + 0x89ff4]
movss dword [ebp - 0xa8], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xa8]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
cmp byte [ebp + 0xf], 0
je 0x4df0e3
mov ecx, dword [0x8354c0]
lea eax, [ebp - 0x1b8]
add ecx, 0x8a008
add ecx, esi
push eax
call fcn.005151a0
push 4
mov ecx, edi
movsd xmm0, qword [eax]
mulsd xmm0, qword [ebp - 0x74]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x134], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x134]
mov dword [edx + ecx], eax
lea eax, [ebp - 0x1c0]
mov ecx, dword [0x8354c0]
add dword [edi + 0x28], 4
add ecx, 0x8a008
add dword [edi + 0x2c], 4
add ecx, esi
push eax
call fcn.005151f0
push 4
mov ecx, edi
movsd xmm0, qword [eax]
mulsd xmm0, qword [ebp - 0x74]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x138], xmm0
call fcn.004da8b0
mov eax, dword [ebp - 0x138]
jmp 0x4df13e
mov eax, dword [0x8354c0]
mov ecx, edi
push 4
movss xmm0, dword [esi + eax + 0x89ff8]
movss dword [ebp - 0x13c], xmm0
call fcn.004da8b0
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 [0x8354c0]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss xmm0, dword [esi + eax + 0x8a000]
movss dword [ebp - 0x140], xmm0
call fcn.004da8b0
mov eax, dword [ebp - 0x140]
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x28]
movss xmm0, dword [ebp - 0x9c]
push 4
movss dword [ebp - 0x9c], xmm0
mov dword [edx + ecx], eax
mov ecx, edi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x9c]
movss xmm0, dword [ebp - 0x14]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss dword [ebp - 0x88], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x88]
movss xmm0, dword [ebp - 0x54]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss dword [ebp - 0x144], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x144]
movss xmm0, dword [ebp - 0xc0]
push 4
mov dword [edx + ecx], eax
mov ecx, edi
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
movss dword [ebp - 0xc0], xmm0
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0xc0]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
cmp byte [ebp + 0xf], 0
je 0x4df268
mov ecx, dword [0x8354c0]
add esi, 0x8a008
add ecx, esi
call fcn.00515170
push 4
mov ecx, edi
mov esi, eax
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov dword [edx + ecx], esi
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x34]
add eax, 0x8a008
add dword [edi + 0x28], 4
add ecx, eax
add dword [edi + 0x2c], 4
call fcn.00515180
push 4
mov ecx, edi
mov esi, eax
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov dword [edx + ecx], esi
jmp 0x4df2af
mov eax, dword [0x8354c0]
mov ecx, edi
push 4
mov esi, dword [esi + eax + 0x89ffc]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x34]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [ecx + eax + 0x8a004]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [0x8354c0]
mov ecx, edi
mov esi, dword [ebp - 0x34]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
push 1
mov al, byte [esi + eax + 0x8a030]
mov byte [ebp - 0x41], al
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dl, byte [ebp - 0x41]
push 1
mov byte [ecx + eax], dl
mov ecx, edi
mov eax, dword [0x8354c0]
inc dword [edi + 0x28]
inc dword [edi + 0x2c]
mov al, byte [esi + eax + 0x8a031]
mov byte [ebp - 0x41], al
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dl, byte [ebp - 0x41]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
mov eax, dword [edi + 0x28]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
and eax, 7
je 0x4df331
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
mov ecx, dword [edi + 0x2c]
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x80], eax
cmp eax, esi
jb 0x4dec60
jmp 0x4df34b
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 - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x20], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00503d60
mov dword [ebp - 0x34], eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x38], eax
test esi, esi
je 0x4df57f
mov dword [ebp - 0x30], eax
nop dword [eax + eax]
add eax, dword [ebp - 0x2c]
mov edx, dword [0x8354c0]
and eax, 0x1ff
mov dword [ebp - 0x14], eax
inc eax
and eax, 0x1ff
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, 0x89ba4
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x54], eax
nop
mov ecx, dword [eax + edx]
mov dword [ebp - 0x24], ecx
test ecx, ecx
je 0x4df554
imul eax, dword [ebp - 0x14], 0x9e
movss xmm0, dword [0x755854]
add eax, esi
mov esi, dword [edx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x1c], 0x9e
add eax, dword [ebp - 0x5c]
mov eax, dword [edx + eax*4 + 0x89dec]
mov dword [ebp - 0x60], eax
mov eax, dword [ecx + 0x528]
sub eax, 0
je 0x4df423
sub eax, 1
je 0x4df419
sub eax, 2
jne 0x4df42b
movss xmm0, dword [0x77b0d4]
jmp 0x4df42b
movss xmm0, dword [0x77b0d0]
jmp 0x4df42b
movss xmm0, dword [0x77b0cc]
mulss xmm0, dword [0x77b0d8]
call fcn.006f2860
xor ecx, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x90], esi
cmp esi, dword [ebp - 0x60]
je 0x4df536
nop
xor eax, eax
mov word [ebp - 0x68], ax
mov byte [ebp - 0x66], 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.006f2840
mov byte [ebp - 0x68], al
mov ecx, 1
mov dword [ebp - 0xa0], ecx
cmp al, 2
jne 0x4df49a
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 - 0x68], cl
jmp 0x4df4e2
cmp al, 5
jne 0x4df4a4
mov byte [ebp - 0x68], 3
jmp 0x4df4e2
cmp al, 6
jne 0x4df4de
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x68]
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x80]
mov eax, dword [ecx]
push eax
call fcn.004ef2a0
mov esi, dword [ebp - 0x90]
add esp, 0x18
test al, al
je 0x4df51a
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
je 0x4df517
xor esi, esi
mov al, byte [ebp + esi - 0x68]
mov ecx, edi
push 1
mov byte [ebp + 0xf], al
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
inc esi
mov eax, dword [edi + 0x30]
mov dl, byte [ebp + 0xf]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
inc dword [edi + 0x2c]
mov ecx, dword [ebp - 0xa0]
cmp esi, ecx
jb 0x4df4e4
mov esi, dword [ebp - 0x90]
add dword [ebp - 0x40], ecx
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x80]
mov esi, edx
mov dword [ebp - 0x90], esi
cmp esi, dword [ebp - 0x60]
jne 0x4df450
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
add eax, edx
inc edx
mov dword [ebp - 0x10], edx
mov edx, dword [0x8354c0]
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x5c]
add eax, 4
inc esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x54], eax
cmp eax, 0x89da4
jb 0x4df3c0
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
inc eax
add dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x18]
jb 0x4df390
mov eax, dword [edi + 0x28]
and eax, 3
je 0x4df59c
mov esi, 4
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 + 0xc], eax
cmp dword [ebp - 0x20], eax
jbe 0x4df5dd
mov ecx, dword [ebp - 0x34]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0xc]
add dword [edi + 0x28], 4
inc eax
add dword [edi + 0x2c], 4
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 0x20]
jb 0x4df5b1
call fcn.004ef770
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4df5ff
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 - 0x40], eax
cmp dword [ebp - 0x18], eax
jbe 0x4df8c2
mov dword [ebp - 0x10], eax
nop dword [eax + eax]
add eax, dword [ebp - 0x2c]
mov edx, dword [0x8354c0]
and eax, 0x1ff
mov dword [ebp - 0x98], eax
inc eax
and eax, 0x1ff
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x70], eax
xor esi, esi
mov eax, 0x89ba4
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], eax
mov ecx, dword [eax + edx]
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x4df897
imul eax, dword [ebp - 0x98], 0x9e
add eax, esi
mov esi, dword [edx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x70], 0x9e
mov dword [ebp - 0x54], esi
add eax, dword [ebp - 0x24]
cmp dword [ecx + 0x20], 0
mov eax, dword [edx + eax*4 + 0x89dec]
mov dword [ebp - 0x60], eax
je 0x4df69a
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x64]
jmp 0x4df6a3
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x48]
movss xmm0, dword [0x755854]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0x528]
sub eax, 0
je 0x4df6d7
sub eax, 1
je 0x4df6cd
sub eax, 2
jne 0x4df6df
movss xmm0, dword [0x77b0d4]
jmp 0x4df6df
movss xmm0, dword [0x77b0d0]
jmp 0x4df6df
movss xmm0, dword [0x77b0cc]
mulss xmm0, dword [0x77b0d8]
call fcn.006f2860
xor ecx, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x94], esi
cmp esi, dword [ebp - 0x60]
je 0x4df879
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx + esi*8]
mov edx, dword [ecx + esi*8 + 4]
mov cl, 0x3d
call fcn.006f2840
mov dword [ebp - 0x7c], 1
xorps xmm0, xmm0
movq qword [ebp - 0x190], xmm0
movups xmmword [ebp - 0x1a0], xmm0
cmp eax, 6
jne 0x4df773
push dword [ebp - 0x38]
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x7c]
push dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x1a0]
push eax
push dword [ebp - 0x40]
lea eax, [ebp - 0x94]
push eax
push dword [ebp - 0x80]
mov eax, dword [edx]
push eax
call fcn.004ef120
mov esi, dword [ebp - 0x94]
add esp, 0x20
test al, al
jne 0x4df7fd
jmp 0x4df85a
cmp eax, 1
je 0x4df7c1
test eax, eax
je 0x4df7c1
cmp eax, 4
jne 0x4df7b4
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x48]
mov eax, dword [edx]
mov edx, dword [eax + esi*8]
mov eax, dword [eax + esi*8 + 4]
shld eax, edx, 0x10
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shld ecx, eax, 0x10
shl edx, 0x10
shl eax, 0x10
sub edx, eax
mov eax, dword [ebp - 0x54]
sbb eax, ecx
shrd edx, eax, 0x10
sar eax, 0x10
jmp 0x4df7f1
movlpd qword [ebp - 0x58], xmm0
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
jmp 0x4df7f1
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x38]
mov eax, dword [edx]
mov edx, dword [eax + esi*8]
mov esi, dword [eax + esi*8 + 4]
mov eax, dword [ebp - 0x30]
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 - 0x54]
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x7c]
xor eax, eax
mov dword [ebp - 0x54], eax
test ecx, ecx
je 0x4df857
nop dword [eax]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + eax*8 - 0x1a0]
mov edi, dword [ebp + eax*8 - 0x19c]
push 8
call fcn.004da8b0
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 - 0x54]
mov ecx, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x54], eax
add dword [edi + 0x28], 8
add dword [edi + 0x2c], 8
cmp eax, ecx
jb 0x4df810
mov esi, dword [ebp - 0x94]
add dword [ebp - 0x5c], ecx
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x80]
mov esi, edx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x94], esi
cmp esi, dword [ebp - 0x60]
jne 0x4df703
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x34]
add eax, edx
inc edx
mov dword [ebp - 0x1c], edx
mov edx, dword [0x8354c0]
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add eax, 4
inc esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], eax
cmp eax, 0x89da4
jb 0x4df651
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
inc eax
add dword [ebp - 0x10], ecx
mov dword [ebp - 0x40], eax
cmp eax, dword [ebp - 0x18]
jb 0x4df620
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x94], eax
xor eax, eax
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x20], eax
jbe 0x4df90a
mov ecx, dword [ebp - 0x34]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x2c]
inc eax
add dword [edi + 0x28], 4
add ecx, 4
mov dword [edi + 0x2c], ecx
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 0x20]
jb 0x4df8d7
jmp 0x4df90d
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
mov dword [eax + 0x98], ecx
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x18], eax
jbe 0x4dfb50
mov dword [ebp - 0x38], eax
nop word [eax + eax]
add eax, dword [ebp - 0x2c]
mov edx, dword [0x8354c0]
and eax, 0x1ff
mov dword [ebp - 0x70], eax
inc eax
and eax, 0x1ff
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x98], eax
xor esi, esi
mov eax, 0x89ba4
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x78], eax
mov ecx, dword [eax + edx]
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x4dfb25
imul eax, dword [ebp - 0x70], 0x9e
movss xmm0, dword [0x755854]
add eax, esi
mov esi, dword [edx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x98], 0x9e
add eax, dword [ebp - 0x48]
mov eax, dword [edx + eax*4 + 0x89dec]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], 0
mov eax, dword [ecx + 0x528]
sub eax, 0
je 0x4df9ce
sub eax, 1
je 0x4df9c4
sub eax, 2
jne 0x4df9d6
movss xmm0, dword [0x77b0d4]
jmp 0x4df9d6
movss xmm0, dword [0x77b0d0]
jmp 0x4df9d6
movss xmm0, dword [0x77b0cc]
mulss xmm0, dword [0x77b0d8]
call fcn.006f2860
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x8c], esi
cmp esi, dword [ebp - 0x50]
je 0x4dfb07
nop word [eax + eax]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx + esi*8]
mov edx, dword [ecx + esi*8 + 4]
mov cl, 0x3d
call fcn.006f2840
mov edx, eax
mov ecx, 1
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xc8], eax
mov word [ebp - 0xc4], ax
cmp edx, 6
jne 0x4dfa6e
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0x1c]
mov eax, dword [ecx]
push eax
call fcn.004eef80
mov esi, dword [ebp - 0x8c]
add esp, 0x1c
test al, al
je 0x4dfaeb
mov ecx, dword [ebp - 0x28]
jmp 0x4dfaa8
mov edi, dword [ebp + 0xc]
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 0x4dfa94
cmp edx, 5
je 0x4dfa94
mov edx, eax
jmp 0x4dfaa1
movzx edx, word [ebp - 0x4c]
lea eax, [edx + 1]
movzx eax, ax
mov dword [ebp - 0x4c], eax
mov word [ebp - 0xc8], dx
xor eax, eax
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x4dfae8
movzx esi, word [ebp + eax*2 - 0xc8]
mov ecx, edi
push 2
call fcn.004da8b0
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 0x4dfab1
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 - 0x50]
jne 0x4dfa00
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
add eax, edx
inc edx
mov dword [ebp - 0x64], edx
mov edx, dword [0x8354c0]
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x48]
add eax, 4
inc esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x78], eax
cmp eax, 0x89da4
jb 0x4df961
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
inc eax
add dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp - 0x18]
jb 0x4df930
mov eax, dword [edi + 0x28]
and eax, 3
je 0x4dfb6d
mov esi, 4
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 + 0xc], eax
cmp dword [ebp - 0x20], eax
jbe 0x4dfbb5
mov ecx, dword [ebp - 0x34]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x2c]
inc eax
add dword [edi + 0x28], 4
add ecx, 4
mov dword [edi + 0x2c], ecx
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 0x20]
jb 0x4dfb82
jmp 0x4dfbb8
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
mov dword [eax + 0xa0], ecx
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x18], eax
jbe 0x4dfd89
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x60], 0x1000000
nop dword [eax + eax]
add eax, dword [ebp - 0x2c]
and eax, 0x1ff
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x70], eax
inc eax
and eax, 0x1ff
xor esi, esi
mov dword [ebp - 0x98], eax
mov eax, 0x89ba4
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x64], eax
nop dword [eax + eax]
mov ecx, dword [0x8354c0]
mov edx, dword [eax + ecx]
mov dword [ebp - 0x78], edx
test edx, edx
je 0x4dfd5e
imul eax, dword [ebp - 0x70], 0x9e
movss xmm0, dword [0x755854]
add eax, esi
mov esi, dword [ecx + eax*4 + 0x89dec]
imul eax, dword [ebp - 0x98], 0x9e
add eax, dword [ebp - 0x48]
mov eax, dword [ecx + eax*4 + 0x89dec]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 0x528]
sub eax, 0
je 0x4dfc7c
sub eax, 1
je 0x4dfc72
sub eax, 2
jne 0x4dfc84
movss xmm0, dword [0x77b0d4]
jmp 0x4dfc84
movss xmm0, dword [0x77b0d0]
jmp 0x4dfc84
movss xmm0, dword [0x77b0cc]
mulss xmm0, dword [0x77b0d8]
call fcn.006f2860
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x6c], esi
cmp esi, dword [ebp - 0x1c]
je 0x4dfd46
mov eax, dword [ebp - 0x78]
mov edx, dword [eax]
mov eax, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
mov dword [ebp - 0x80], eax
shr eax, 0x1d
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x54], eax
cmp eax, 3
je 0x4dfccc
cmp eax, 5
je 0x4dfccc
cmp eax, 6
jne 0x4dfd2d
mov byte [ebp + 0x1b], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
cmp eax, 6
jne 0x4e02f6
lea eax, [ebp + 0x1b]
push eax
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x14]
push edx
call fcn.004ef0a0
add esp, 0x18
test al, al
je 0x4dfd2a
cmp byte [ebp + 0x1b], 0
jne 0x4dfd13
xor ecx, ecx
jmp 0x4e037b
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x54]
mov dword [ebp + 0xc], ecx
jmp 0x4e030c
mov esi, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x24]
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 0x14]
mov esi, edx
mov dword [ebp - 0x6c], esi
cmp esi, dword [ebp - 0x1c]
jne 0x4dfca5
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
add eax, edx
inc edx
mov dword [ebp - 0x50], edx
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x48]
add eax, 4
inc esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x64], eax
cmp eax, 0x89da4
jb 0x4dfc10
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
inc eax
add dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp - 0x18]
jb 0x4dfbe0
mov ecx, dword [edi]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0xa4], eax
xor eax, eax
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x20], eax
jbe 0x4dfdcc
nop
mov ecx, dword [ebp - 0x34]
push 4
mov esi, dword [ecx + eax*4]
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0xc]
add dword [edi + 0x28], 4
inc eax
add dword [edi + 0x2c], 4
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 0x20]
jb 0x4dfda0
push dword [ebp - 0x34]
call fcn.00503df0
add esp, 4
call fcn.004ef9c0
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 0x4dfe14
mov ecx, 4
sub ecx, eax
mov dword [ebp + 0xc], ecx
push ecx
mov ecx, edi
call fcn.004da8b0
mov eax, dword [ebp + 0xc]
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 0x4e0011
mov ecx, dword [edx + ecx*4]
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x4e0577
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xf4], 0x20
mov dword [ebp - 0xfc], eax
mov esi, ecx
mov dword [ebp - 4], 7
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4dfe66
sub esi, edx
xor edx, edx
mov dword [ebp - 0xf8], edx
cmp esi, 0x20
jbe 0x4dfe9a
push 1
push esi
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0xfc]
call fcn.00514f60
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0xfc]
lea edi, [edx + eax]
mov dword [ebp + 0xc], edi
lea edi, [ecx + esi]
cmp ecx, edi
mov edi, dword [ebp + 8]
je 0x4dfec9
push esi
push ecx
push dword [ebp + 0xc]
call fcn.006f45d0
mov edx, dword [ebp - 0xf8]
add esp, 0xc
mov eax, dword [ebp - 0xfc]
add edx, esi
mov dword [ebp - 0xf8], edx
lea ecx, [edx + eax]
mov dword [ebp - 4], 8
mov esi, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0xc], esi
cmp esi, ecx
je 0x4dff4d
mov edi, ecx
nop dword [eax]
movzx eax, byte [esi]
push eax
call fcn.00709d30
add esp, 4
test eax, eax
je 0x4dff05
inc esi
cmp esi, edi
jne 0x4dfef0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xf8]
mov edi, dword [ebp + 8]
mov dword [ebp + 0xc], esi
cmp esi, ecx
je 0x4dff4d
lea eax, [esi + 1]
mov dword [ebp - 0x70], eax
cmp eax, ecx
je 0x4dff4d
mov edi, eax
movzx eax, byte [edi]
push eax
call fcn.00709d30
add esp, 4
test eax, eax
je 0x4dff39
mov al, byte [edi]
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 0x10]
inc edi
cmp edi, ecx
jne 0x4dff24
mov edx, dword [ebp - 0xf8]
mov edi, dword [ebp + 8]
mov dword [ebp + 0xc], esi
mov esi, dword [ebp - 0xfc]
add esi, edx
sub esi, ecx
push esi
push ecx
push dword [ebp + 0xc]
call fcn.006f45d0
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [ebp - 0xfc]
add eax, esi
sub eax, ecx
mov dword [ebp - 0xf8], eax
lea edx, [eax + 1]
cmp edx, dword [ebp - 0xf4]
jbe 0x4dffa3
push 1
push edx
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0xfc]
call fcn.00514f60
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xfc]
mov byte [eax + ecx], 0
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0xfc]
mov ecx, edi
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 4], 0xffffffff
mov dword [edx + ecx], eax
lea ecx, [ebp - 0xf0]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [ebp - 0xfc]
cmp eax, ecx
je 0x4dfff5
push eax
call fcn.00503df0
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 0x4dfe36
call fcn.004ef8b0
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4e0033
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 0x4e0069
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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 [0x835974], 0
je 0x4e028a
cmp byte [0x8354a0], 0
je 0x4e028a
mov eax, dword [edi + 0x28]
and eax, 7
je 0x4e00b7
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
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.004f4330
mov ecx, eax
call fcn.004a0140
mov esi, eax
lea eax, [ebp - 0x188]
push eax
mov ecx, esi
call fcn.004f3f80
lea eax, [ebp - 0x1b0]
mov ecx, esi
push eax
call fcn.004f3fe0
lea eax, [ebp - 0x1b0]
push eax
lea ecx, [ebp - 0x188]
call fcn.004f3ed0
test al, al
je 0x4e027f
nop dword [eax]
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x188]
call fcn.004f3f10
mov eax, dword [ebp - 0x16c]
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x170]
mov dword [ebp + 0xc], 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.004da8b0
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 0x4e0140
mov esi, dword [ebp + 0xc]
mov ecx, edi
push 4
mov esi, dword [esi]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 4
mov dword [ecx + eax], esi
mov ecx, edi
mov eax, dword [ebp + 0xc]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov esi, dword [eax + 0x10]
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
push 8
mov dword [ecx + eax], esi
mov eax, dword [ebp + 0xc]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov ecx, dword [ebp + 8]
movq xmm0, qword [eax + 8]
movq qword [ebp - 0x74], xmm0
mov esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x70]
call fcn.004da8b0
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 + 0xc]
add dword [edx + 0x28], 8
add dword [edx + 0x2c], 8
movq xmm0, qword [eax + 0x18]
movq qword [ebp - 0x74], xmm0
mov esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x70]
call fcn.004da8b0
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 + 0xf], al
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x30]
mov dl, byte [ebp + 0xf]
mov byte [ecx + eax], dl
inc dword [edi + 0x28]
mov eax, dword [edi + 0x28]
inc dword [edi + 0x2c]
and eax, 7
je 0x4e025a
mov esi, 8
mov ecx, edi
sub esi, eax
push esi
call fcn.004da8b0
add dword [edi + 0x28], esi
add dword [edi + 0x2c], esi
lea ecx, [ebp - 0x188]
call fcn.004f3f40
lea eax, [ebp - 0x1b0]
push eax
lea ecx, [ebp - 0x188]
call fcn.004f3ed0
test al, al
jne 0x4e0110
mov eax, dword [edi]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0xc0], ecx
mov ecx, edi
call fcn.004da710
mov eax, dword [0x8354c0]
mov ecx, dword [ebp - 0x15c]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x160]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0x164]
mov dword [eax + 0x88], ecx
cmp byte [0xa82632], 0
mov ecx, dword [0x8e0c50]
je 0x4e05af
cmp byte [0x8e0c40], 0
je 0x4e05af
test cl, cl
je 0x4e05e6
cmp cl, 6
jb 0x4e05e6
shr ecx, 8
cmp cl, 3
jb 0x4e05e6
jmp 0x4e05b3
mov edx, dword [ebp - 0x80]
movzx edx, dx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edx
mov byte [ebp + 0x1b], 1
mov dword [ebp - 0x54], edx
cmp eax, 5
jne 0x4e0319
mov ecx, dword [ebp + 0xc]
jmp 0x4e037e
mov eax, dword [0x8354c0]
mov esi, 0x800000
mov eax, dword [eax + 0xdce68]
cmp byte [0x8354b0], 0
mov dword [ebp - 0x54], eax
mov eax, dword [0x8354c0]
cmovne esi, dword [ebp - 0x60]
movq xmm0, qword [eax + 0xdce70]
movq qword [ebp - 0x84], xmm0
mov eax, dword [ebp - 0x84]
mov dword [ebp + 0xc], eax
sub dword [ebp + 0xc], ecx
mov eax, dword [ebp - 0x80]
sbb eax, edx
test eax, eax
jb 0x4e036c
ja 0x4e0368
cmp dword [ebp + 0xc], esi
jbe 0x4e036c
xor ecx, ecx
jmp 0x4e037b
push 0
push esi
push edx
push ecx
call fcn.006f3290
mov ecx, eax
add ecx, dword [ebp - 0x54]
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x4e054a
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x120], 0x20
mov dword [ebp - 0x128], eax
mov esi, ecx
mov dword [ebp - 4], 0
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4e03a8
sub esi, edx
xor edx, edx
mov dword [ebp - 0x124], edx
cmp esi, 0x20
jbe 0x4e03dc
push 1
push esi
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x128]
call fcn.00514f60
mov edx, dword [ebp - 0x124]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x128]
lea edi, [edx + eax]
mov dword [ebp + 0xc], edi
lea edi, [ecx + esi]
cmp ecx, edi
mov edi, dword [ebp + 8]
je 0x4e040b
push esi
push ecx
push dword [ebp + 0xc]
call fcn.006f45d0
mov edx, dword [ebp - 0x124]
add esp, 0xc
mov eax, dword [ebp - 0x128]
add edx, esi
mov dword [ebp - 0x124], edx
lea ecx, [eax + edx]
mov dword [ebp - 4], 1
mov esi, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0xc], esi
cmp esi, ecx
je 0x4e048d
mov edi, ecx
nop dword [eax + eax]
movzx eax, byte [esi]
push eax
call fcn.00709d30
add esp, 4
test eax, eax
je 0x4e0445
inc esi
cmp esi, edi
jne 0x4e0430
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x124]
mov edi, dword [ebp + 8]
mov dword [ebp + 0xc], esi
cmp esi, ecx
je 0x4e048d
lea eax, [esi + 1]
mov dword [ebp - 0x54], eax
cmp eax, ecx
je 0x4e048d
mov edi, eax
movzx eax, byte [edi]
push eax
call fcn.00709d30
add esp, 4
test eax, eax
je 0x4e0479
mov al, byte [edi]
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 0x10]
inc edi
cmp edi, ecx
jne 0x4e0464
mov edx, dword [ebp - 0x124]
mov edi, dword [ebp + 8]
mov dword [ebp + 0xc], esi
mov esi, dword [ebp - 0x128]
add esi, edx
sub esi, ecx
push esi
push ecx
push dword [ebp + 0xc]
call fcn.006f45d0
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [ebp - 0x128]
add eax, esi
sub eax, ecx
mov dword [ebp - 0x124], eax
lea edx, [eax + 1]
cmp edx, dword [ebp - 0x120]
jbe 0x4e04e3
push 1
push edx
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x128]
call fcn.00514f60
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x128]
mov byte [eax + ecx], 0
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0x128]
mov ecx, edi
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x30]
mov eax, dword [ebp - 0x154]
mov dword [ebp - 4], 0xffffffff
mov dword [edx + ecx], eax
lea ecx, [ebp - 0x11c]
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
mov eax, dword [ebp - 0x128]
cmp eax, ecx
je 0x4e0568
push eax
call fcn.00503df0
mov ecx, dword [ebp - 0x24]
add esp, 4
mov esi, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x24], ecx
jmp 0x4dfd30
push 4
mov ecx, edi
call fcn.004da8b0
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 - 0x6c]
inc ecx
mov dword [ebp - 0x24], ecx
jmp 0x4dfd30
lea eax, [ebp - 0x158]
mov ecx, edi
push eax
push 0x749c2a
call fcn.004e4170
push 4
mov ecx, edi
call fcn.004da8b0
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x158]
mov dword [edx + ecx], eax
add dword [edi + 0x28], 4
add dword [edi + 0x2c], 4
jmp 0x4dfff8
test cl, cl
je 0x4e05e6
mov dword [ebp + 8], 0x45da609
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x38]
sub ecx, 0x3e5f571
shr eax, 0xa
push eax
mov eax, dword [edi + 0x2c]
shr eax, 0xa
push eax
push ecx
push dword [0x8e0c54]
push dword [0x8e0c50]
call fcn.005050f0
add esp, 0x14
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret