Function at 0x404019
Capabilities:
Encode data using xor
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
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x419bc1
push eax
mov dword fs:[0], esp
mov eax, dword fs:[0x2c]
mov ecx, dword [0x423df8]
push ebx
sub esp, 0x68
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x423abc]
push esi
push edi
cmp eax, dword [ecx + 4]
jg 0x40443b
mov eax, dword [ebx + 8]
cmp eax, 0x10
ja case.default.0x403dad
jmp dword [eax*4 + 0x404568]
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x78a68b39
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x403dfd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403de0
cmp edx, 0x6b477759
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403dd0
mov edx, dword [ebp - 0x18]
jmp 0x40440e
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0x79cdefa
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x403e5d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403e40
cmp edx, 0xfe9b1a36
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403e30
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xaee5ee1c
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x403eb2
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403e91
cmp edx, 0xc493c654
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403e81
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xafdb6253
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x403f07
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403ee6
cmp edx, 0xfbd58561
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403ed6
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0xb4f97f46
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x403f61
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403f40
cmp edx, 0x2ae2d96d
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403f30
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x1e81b9d8
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x403fb6
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403f95
cmp edx, 0xe2e9307a
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403f85
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0x99be6fbc
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404011
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x403ff0
cmp edx, 0x2ac0e1b2
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x403fe0
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xbe003b06
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404066
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x404045
cmp edx, 0x3552527a
je 0x403e05
inc dword [ebp - 0x14]
add esi, 4
jmp 0x404035
push 0x30c
call fcn.00410db7
add esp, 4
mov dword [ebp - 0x1c], eax
test eax, eax
je case.default.0x403dad
push 0x2bc
push 0x64
call fcn.00402380
mov edi, dword [0x423ab8]
add esp, 8
mov dword [ebp - 0x18], eax
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + edi + 0x78]
xor ecx, ecx
add eax, edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x27b62c84
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4040e1
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4040c4
cmp edx, 0x44ef66ea
je 0x4040e9
inc dword [ebp - 0x14]
add esi, 4
jmp 0x4040b4
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [edx + 0x24]
push esi
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
push esi
call fcn.00410d9c
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x25d9d6bd
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404176
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x404155
cmp edx, 0x46921dc
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x404145
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0x422525fc
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4041d1
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4041b0
cmp edx, 0x80d974c
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x4041a0
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xa78bd04a
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404226
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x404205
cmp edx, 0x2a147276
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x4041f5
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0xd9d7422b
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x40427d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x404260
cmp edx, 0xdb88512e
je 0x404285
inc dword [ebp - 0x14]
add esi, 4
jmp 0x404250
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
push 0x10
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xbbc305f
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404304
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4042e3
cmp edx, 0x2be9272b
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x4042d3
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0xe570d162
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404361
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x404340
cmp edx, 0x43b97075
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x404330
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xab2552e9
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4043b2
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x404395
cmp edx, 0xc60e58a9
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x404385
mov edi, dword [0x423ab8]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x730bbc8d
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x404403
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4043e6
cmp edx, 0x32e00633
je 0x40440b
inc dword [ebp - 0x14]
add esi, 4
jmp 0x4043d6
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x423abc
call fcn.0040db7b
add esp, 4
cmp dword [0x423abc], 0xffffffff
jne 0x403da1
mov dword [ebp - 0x28], 0x95afa0d2
mov dword [ebp - 0x24], 0xb13d465d
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x28], 0x548c8063
mov dword [ebp - 0x24], 0x279948c5
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x28], 0x65993b45
mov dword [ebp - 0x24], 0x8bf8b52d
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x28], 0x13c128a8
mov dword [ebp - 0x24], 0x8118f070
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x28], 0x95caa0b9
mov dword [ebp - 0x24], 0xb153462f
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x28], 0x54e08006
mov dword [ebp - 0x24], 0x27ab48f6
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x28], 0x65fd3b6b
mov dword [ebp - 0x24], 0x8b94b541
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x28], 0x13c128a8
mov dword [ebp - 0x24], 0x8118f070
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
vmovdqu ymm0, ymmword [ebp - 0x50]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x54], ecx
vpxor ymm0, ymm0, ymmword [ebp - 0x70]
mov dword [ebp - 4], 0
vmovdqu ymmword [ebp - 0x50], ymm0
push eax
vzeroupper
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x423abc
mov dword [0x423ab8], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0040db31
add esp, 4
jmp 0x403da1