Function at 0x407a60
Capabilities:
Access peb ldr_data
Encode data using xor
Get number of processors
Hash data using fnv
Resolve function by parsing pe exports

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
sub esp, 0x3b8
mov eax, dword [0x4a4314]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [0x4a5e4c]
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x394], edi
call fcn.004012f0
lea eax, [ebp - 0x88]
push eax
call fcn.00401340
push 0x3ee
push edi
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
je 0x408042
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0x38d]
push eax
push 0x3eb
push edi
mov byte [ebp - 0x38d], 0
call esi
lea eax, [ebp - 0x38d]
mov byte [ebp - 0x38d], 0
push eax
push 0x3ec
push edi
call esi
lea edx, [ebp - 0x88]
lea ecx, [ebp - 0x48]
call fcn.00401de0
mov ecx, dword [0x4a5684]
mov esi, 4
lea edi, [esi + 0x1b]
test al, al
jne 0x407ce4
movups xmm0, xmmword [0x49e8d8]
mov eax, dword [0x49e8f8]
xor edx, edx
mov dword [ebp - 0x2a0], eax
mov ax, word [0x49e8fc]
mov word [ebp - 0x29c], ax
mov al, byte [0x49e8fe]
mov byte [ebp - 0x29a], al
mov dword [ebp - 0x384], edx
movups xmmword [ebp - 0x2c0], xmm0
movups xmm0, xmmword [0x49e8e8]
movups xmmword [ebp - 0x2b0], xmm0
cmp ecx, 2
jl 0x407ca2
movaps xmm0, xmmword [0x49f340]
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movaps xmmword [ebp - 0x3b0], xmm0
mov ecx, dword [ebp - 0x3b0]
movd xmm5, esi
movd xmm7, edi
movd xmm0, edx
lea eax, [edx + 4]
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 + edx - 0x2c0]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x2c0], 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 + edx - 0x2bc]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x2bc], xmm1
add edx, 8
cmp edx, 0x20
jl 0x407b94
mov dword [ebp - 0x384], edx
cmp edx, 0x27
jge 0x407cd9
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x384]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2c0], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 0x27
jl 0x407ca2
lea ecx, [ebp - 0x2c0]
call fcn.004031d0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x38c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x407d6a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x407d6a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax + eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x384], ecx
dec edi
mov esi, 0xa73ea118
mov cl, byte [edx]
inc edx
test cl, cl
je 0x407d5d
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 0x407d40
cmp esi, 0xb4d75006
je 0x407d6e
mov ecx, dword [ebp - 0x384]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x407d20
mov eax, dword [eax]
jmp 0x407cf0
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x38c]
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]
lea ecx, [ebp - 0x48]
add eax, edx
push ecx
call eax
add esp, 4
test eax, eax
je 0x407e63
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 - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x407e2a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x407e2a
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax + eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x38c], ecx
dec edi
mov esi, 0xa83ea2ab
mov cl, byte [edx]
inc edx
test cl, cl
je 0x407e1d
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 0x407e00
cmp esi, 0x8f70cb19
je 0x407e2e
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x407de0
mov eax, dword [eax]
jmp 0x407db0
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
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]
lea ecx, [ebp - 0x88]
add eax, edx
push ecx
call eax
add esp, 4
test eax, eax
jne 0x408582
movups xmm0, xmmword [0x49e8d8]
mov eax, dword [0x49e8f8]
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x2a0], eax
mov ax, word [0x49e8fc]
movups xmmword [ebp - 0x2c0], xmm0
mov word [ebp - 0x29c], ax
movups xmm0, xmmword [0x49e8e8]
mov al, byte [0x49e8fe]
mov byte [ebp - 0x29a], al
movups xmmword [ebp - 0x2b0], xmm0
mov dword [ebp - 0x384], edx
jl 0x408000
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 - 0x3b0], xmm0
mov ecx, dword [ebp - 0x3b0]
movd xmm7, eax
movd xmm0, edx
lea eax, [edx + 4]
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 + edx - 0x2c0]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x2c0], 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 + edx - 0x2bc]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x2bc], xmm1
add edx, 8
cmp edx, 0x20
jl 0x407ef2
mov dword [ebp - 0x384], edx
cmp edx, 0x27
jge 0x408037
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x384]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2c0], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 0x27
jl 0x408000
lea ecx, [ebp - 0x2c0]
jmp 0x40857d
mov ecx, 0x15
lea edi, [ebp - 0x380]
mov esi, 0x49e6c0
xor edx, edx
cmp dword [0x4a5684], 2
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x384], edx
lea ecx, [edx + 4]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea esi, [edx + 0x1f]
jl 0x4081b1
movaps xmm0, xmmword [0x49f340]
movaps xmm4, xmmword [0x49f2f0]
movaps xmm3, xmmword [0x49f330]
movaps xmm6, xmmword [0x49f310]
movaps xmmword [ebp - 0x3b0], xmm0
movd xmm5, ecx
mov ecx, dword [ebp - 0x3b0]
movd xmm7, esi
movd xmm0, edx
lea eax, [edx + 4]
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 + edx - 0x380]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x380], 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 + edx - 0x37c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x37c], xmm1
add edx, 8
cmp edx, 0x50
jl 0x4080a3
mov dword [ebp - 0x384], edx
cmp edx, 0x57
jge 0x4081e8
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x384]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x380], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 0x57
jl 0x4081b1
lea ecx, [ebp - 0x380]
call fcn.00403aa0
mov edi, dword [ebp - 0x394]
lea eax, [ebp - 0x48]
mov esi, dword [sym.imp.USER32.dll_GetDlgItemTextA]
push 0x1e
push eax
push 0x3eb
push edi
call esi
push 0x1e
lea eax, [ebp - 0x88]
push eax
push 0x3ec
push edi
call esi
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 - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x4082aa
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4082aa
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 - 0x38c], ecx
dec edi
mov esi, 0x38cbe374
mov cl, byte [edx]
inc edx
test cl, cl
je 0x40829d
nop
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x408280
cmp esi, 0x511422d2
je 0x4082ae
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x408263
mov eax, dword [eax]
jmp 0x408230
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
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]
lea ecx, [ebp - 0x48]
add eax, edx
push ecx
call eax
add esp, 4
test eax, eax
je 0x4083a3
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 - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x40836a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x40836a
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 - 0x38c], ecx
dec edi
mov esi, 0x39cbe507
mov cl, byte [edx]
inc edx
test cl, cl
je 0x40835d
nop
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x408340
cmp esi, 0x10544165
je 0x40836e
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x408323
mov eax, dword [eax]
jmp 0x4082f0
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
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]
lea ecx, [ebp - 0x88]
add eax, edx
push ecx
call eax
add esp, 4
test eax, eax
jne 0x408582
movups xmm0, xmmword [0x49ecec]
mov eax, dword [0x49ed0c]
xor edx, edx
cmp dword [0x4a5684], 2
movups xmmword [ebp - 0x2c0], xmm0
mov dword [ebp - 0x2a0], eax
movups xmm0, xmmword [0x49ecfc]
mov ax, word [0x49ed10]
mov word [ebp - 0x29c], ax
movups xmmword [ebp - 0x2b0], xmm0
mov dword [ebp - 0x384], edx
jl 0x408540
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 - 0x3b0], xmm0
mov ecx, dword [ebp - 0x3b0]
movd xmm7, eax
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
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 + edx - 0x2c0]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x2c0], 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 + edx - 0x2bc]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x2bc], xmm1
add edx, 8
cmp edx, 0x20
jl 0x408430
mov dword [ebp - 0x384], edx
cmp edx, 0x26
jge 0x408577
nop
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x384]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2c0], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 0x26
jl 0x408540
lea ecx, [ebp - 0x2c0]
call fcn.004031d0
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408588
sub ecx, edx
mov dword [0x4a5e98], ecx
cmp ecx, 0x40
jge 0x4085d3
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x4a5e58
call fcn.0046bc80
xor ecx, ecx
add esp, 0xc
cmp dword [0x4a5e98], ecx
jle 0x4085d3
nop dword [eax + eax]
mov al, cl
add al, 0x3a
xor byte [ecx + 0x4a5e58], al
inc ecx
cmp ecx, dword [0x4a5e98]
jl 0x4085c0
lea ecx, [ebp - 0x88]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4085e0
sub ecx, edx
mov dword [0x4a5edc], ecx
cmp ecx, 0x40
jge 0x408629
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x88]
push eax
push 0x4a5e9c
call fcn.0046bc80
xor ecx, ecx
add esp, 0xc
cmp dword [0x4a5edc], ecx
jle 0x408629
mov al, cl
sub al, 0x46
xor byte [ecx + 0x4a5e9c], al
inc ecx
cmp ecx, dword [0x4a5edc]
jl 0x408616
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 - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x4086ba
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4086ba
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 - 0x38c], ecx
dec edi
mov esi, 0xc07951c4
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4086ad
nop
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x408690
cmp esi, 0x8cb89de7
je 0x4086be
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x408673
mov eax, dword [eax]
jmp 0x408640
mov ecx, dword [ebp - 0x388]
mov esi, dword [ebp - 0x384]
push 0x64
mov eax, dword [ecx + 0x24]
lea eax, [eax + edi*2]
movzx edx, word [eax + esi]
mov eax, dword [ecx + 0x1c]
lea eax, [eax + edx*4]
mov eax, dword [eax + esi]
add eax, esi
call eax
mov eax, dword fs:[0x30]
lea edi, [ebp - 0x328]
mov ecx, 0x15
mov esi, 0x49f1d0
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x40877a
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x40877a
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 - 0x38c], ecx
dec edi
mov esi, 0x4c7ea2fc
mov cl, byte [edx]
inc edx
test cl, cl
je 0x40876d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x408750
cmp esi, 0x88052a22
je 0x40877e
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x408735
mov eax, dword [eax]
jmp 0x408702
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
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 esi, dword [eax + edx]
add esi, edx
xor edx, edx
cmp dword [0x4a5684], 2
mov dword [ebp - 0x384], edx
jl 0x408902
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 - 0x3b0], xmm0
mov ecx, dword [ebp - 0x3b0]
movd xmm7, eax
nop
movd xmm0, edx
lea eax, [edx + 4]
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 + edx - 0x328]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x328], 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 + edx - 0x324]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x324], xmm1
add edx, 8
cmp edx, 0x50
jl 0x4087f0
mov dword [ebp - 0x384], edx
cmp edx, 0x55
jge 0x408939
mov eax, 0x288df0cb
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x384]
movsx eax, al
mov cl, dl
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x328], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 0x55
jl 0x408902
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x328]
push eax
lea eax, [ebp - 0x298]
push eax
call esi
mov eax, dword [0x49e4e8]
add esp, 0x10
mov dword [ebp - 0x2c8], eax
mov ax, word [0x49e4ec]
mov word [ebp - 0x2c4], ax
test ah, ah
je 0x4089bc
xor edx, edx
mov dword [ebp - 0x384], edx
nop
mov eax, 0x446f8657
mul edx
mov eax, dword [ebp - 0x384]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x384]
shr eax, 6
mov cl, dl
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2c8], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 6
jl 0x408980
push 0xff
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x298]
call fcn.00401430
add esp, 4
test eax, eax
je 0x408b1e
lea eax, [ebp - 0x190]
push eax
call fcn.00401390
mov eax, dword [0x49ec90]
mov dword [ebp - 0x2d0], eax
mov ax, word [0x49ec94]
mov word [ebp - 0x2cc], ax
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 - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x408a8c
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x408a8c
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 - 0x38c], ecx
dec edi
mov esi, 0xd3a86c0d
mov cl, byte [edx]
inc edx
test cl, cl
je 0x408a7f
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x408a62
cmp esi, 0xacb0842c
je 0x408a90
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x408a43
mov eax, dword [eax]
jmp 0x408a10
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
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 esi, dword [eax + edx]
add esi, edx
xor edx, edx
mov dword [ebp - 0x384], edx
nop dword [eax]
mov eax, 0x446f8657
mul edx
mov eax, dword [ebp - 0x384]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x384]
shr eax, 6
mov cl, dl
movsx eax, al
imul eax, eax, 0x65
sub cl, al
add cl, 0x63
xor byte [ebp + edx - 0x2d0], cl
inc edx
mov dword [ebp - 0x384], edx
cmp edx, 6
jl 0x408ac0
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x190]
push eax
call esi
add esp, 8
test eax, eax
jne 0x408b1e
lea ecx, [ebp - 0x190]
call fcn.004031d0
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 - 0x384], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x388], ecx
cmp ecx, esi
je 0x408bb0
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x408bb0
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 - 0x38c], ecx
dec edi
mov esi, 0xa7c2effd
mov cl, byte [edx]
inc edx
test cl, cl
je 0x408ba3
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x408b82
cmp esi, 0xad6fae00
je 0x408bb7
mov ecx, dword [ebp - 0x38c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x408b63
mov eax, dword [eax]
jmp 0x408b30
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
push 0x64
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 edi, dword [ebp - 0x394]
push 0x3ee
push edi
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x408c1b
mov esi, dword [sym.imp.USER32.dll_GetDlgItemTextA]
lea eax, [ebp - 0x48]
push 0x1e
push eax
push 0x3eb
push edi
call esi
push 0x1e
lea eax, [ebp - 0x88]
push eax
push 0x3ec
push edi
call esi
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408c21
sub ecx, edx
mov dword [0x4a5e98], ecx
cmp ecx, 0x40
jge 0x408c73
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x4a5e58
call fcn.0046bc80
xor ecx, ecx
add esp, 0xc
cmp dword [0x4a5e98], ecx
jle 0x408c73
nop dword [eax]
mov al, cl
add al, 0x3a
xor byte [ecx + 0x4a5e58], al
inc ecx
cmp ecx, dword [0x4a5e98]
jl 0x408c60
lea ecx, [ebp - 0x88]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408c80
sub ecx, edx
mov dword [0x4a5edc], ecx
cmp ecx, 0x40
jge 0x408cd3
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x88]
push eax
push 0x4a5e9c
call fcn.0046bc80
xor ecx, ecx
add esp, 0xc
cmp dword [0x4a5edc], ecx
jle 0x408cd3
nop
mov al, cl
sub al, 0x46
xor byte [ecx + 0x4a5e9c], al
inc ecx
cmp ecx, dword [0x4a5edc]
jl 0x408cc0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x384], edx
mov ecx, dword [edx + 0x3c]
mov ecx, dword [ecx + edx + 0x78]
add ecx, edx
mov dword [ebp - 0x388], ecx
cmp ecx, edx
je 0x408d5f
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x408d5f
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, edx
sub ecx, 4
dec edi
mov dword [ebp - 0x38c], ecx
mov esi, 0xfa18f817
mov ecx, dword [ecx]
add ecx, edx
mov dl, byte [ecx]
inc ecx
test dl, dl
je 0x408d52
movsx edx, dl
lea ecx, [ecx + 1]
xor edx, esi
imul esi, edx, 0x1000193
mov dl, byte [ecx - 1]
test dl, dl
jne 0x408d31
cmp esi, 0x6eab4a54
je 0x408d66
mov ecx, dword [ebp - 0x38c]
mov edx, dword [eax + 0x18]
test edi, edi
jne 0x408d13
mov eax, dword [eax]
jmp 0x408ce0
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
push 0
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
mov edi, dword [ebp - 0x394]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push edi
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
xor ecx, ebp
pop esi
call fcn.0046a386
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4