Function at 0x477a60
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47ad3d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x248
push esi
mov dword [ebp - 0x10], 0
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x98], edi
cmp dword [esi + 0x10], 0
jne 0x477aac
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0xe0]
call fcn.00477180
mov dword [ebp - 4], 0
mov edx, eax
push 0x498b8c
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x10], 1
call fcn.0040d480
add esp, 4
mov dword [ebp - 4], 1
mov ecx, 3
mov dword [ebp - 0x10], ecx
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x477af4
mov eax, dword [eax]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x477afe
mov ecx, dword [esi]
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.0040f5d0
add esp, 8
test al, al
je 0x477b73
lea ecx, [ebp - 0x150]
call fcn.004771e0
mov dword [ebp - 4], 2
mov edx, eax
push 0x498b94
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x10], 7
call fcn.0040d480
add esp, 4
mov dword [ebp - 4], 3
mov ecx, 0xf
mov dword [ebp - 0x10], ecx
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x477b54
mov eax, dword [eax]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x477b5e
mov ecx, dword [esi]
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.0040f5d0
add esp, 8
mov byte [ebp + 0xb], 1
test al, al
je 0x477b77
mov byte [ebp + 0xb], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x10]
test al, 8
je 0x477b96
and eax, 0xfffffff7
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x10], eax
call fcn.0040cb50
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 1
test al, 4
je 0x477bb5
and eax, 0xfffffffb
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x10], eax
call fcn.0040cb50
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0
test al, 2
je 0x477bd4
and eax, 0xfffffffd
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x10], eax
call fcn.0040cb50
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
test al, 1
je 0x477bf0
and eax, 0xfffffffe
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x10], eax
call fcn.0040cb50
cmp byte [ebp + 0xb], 0
je 0x477c67
lea ecx, [ebp - 0xc8]
call fcn.004771e0
mov dword [ebp - 4], 4
mov edx, eax
push str..pac
lea ecx, [ebp - 0xe0]
call fcn.0040d480
add esp, 4
mov byte [ebp - 4], 5
mov ecx, edi
push eax
call fcn.00477a60
mov byte [ebp + 0xb], al
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe0]
call fcn.0040cb50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc8]
call fcn.0040cb50
cmp byte [ebp + 0xb], 0
je 0x477c67
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
xorps xmm0, xmm0
mov dword [ebp - method.CFile.virtual_0], vtable.CFile.0
mov byte [ebp - 0xe4], 0
movlpd qword [ebp - 0x110], xmm0
mov dword [ebp - 4], 6
push ecx
push esi
lea ecx, [ebp - 0x130]
call fcn.00475d00
test al, al
je 0x478251
cmp dword [esi + 0x14], 0x10
jb 0x477ca7
mov esi, dword [esi]
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x254]
push eax
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push 0xc
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x130]
call fcn.00475b80
lea ecx, [ebp - 0xac]
cmp word [ecx], 0x4150
jne 0x478251
cmp byte [ecx + 2], 0x43
jne 0x478251
mov eax, dword [ebp - 0x110]
push ecx
add eax, 0xfffffffc
lea ecx, [ebp - 0x130]
push 0
push eax
call fcn.00475440
push 4
lea eax, [ebp + 8]
mov dword [ebp + 8], 0
push eax
lea ecx, [ebp - 0x130]
call fcn.00475b80
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x14]
mov edx, esi
call fcn.00418110
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x110]
push ecx
sub eax, esi
lea ecx, [ebp - 0x130]
sub eax, 4
push 0
push eax
call fcn.00475440
push esi
push dword [ebp - 0x14]
lea ecx, [ebp - 0x130]
call fcn.00475b80
xor edx, edx
test esi, esi
je 0x477dcb
cmp esi, 0x40
jb 0x477dba
movaps xmm1, xmmword [0x49fbf0]
mov ecx, esi
and ecx, 0xffffffc0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [edx + eax]
pandn xmm0, xmm1
movups xmmword [edx + eax], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [edx + eax + 0x10]
pandn xmm0, xmm1
movups xmmword [edx + eax + 0x10], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [edx + eax + 0x20]
pandn xmm0, xmm1
movups xmmword [edx + eax + 0x20], xmm0
mov eax, dword [ebp - 0x14]
movups xmm0, xmmword [edx + eax + 0x30]
pandn xmm0, xmm1
movups xmmword [edx + eax + 0x30], xmm0
add edx, 0x40
cmp edx, ecx
jb 0x477d71
cmp edx, esi
jae 0x477dcb
nop
mov ecx, dword [ebp - 0x14]
not byte [ecx + edx]
inc edx
cmp edx, esi
jb 0x477dc0
imul edx, dword [ebp - 0xa8], 0x4c
lea ecx, [ebp - 0x1c]
call fcn.00418110
mov byte [ebp - 4], 8
imul eax, dword [ebp - 0xa8], 0x4c
mov ecx, dword [edi + 0x28]
push esi
push dword [ebp - 0x14]
push eax
push dword [ebp - 0x1c]
call fcn.00478de0
cmp dword [ebp - 0xa8], 0
mov dword [ebp - 0x9c], 0
jbe 0x478223
xor ecx, ecx
mov dword [ebp - 0xa0], ecx
mov esi, dword [ebp - 0x1c]
add esi, ecx
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov byte [ebp - 4], 9
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x254]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x477ec0
sub ecx, edx
lea eax, [ebp - 0x254]
push ecx
push eax
lea ecx, [ebp - 0x94]
call fcn.0040cef0
mov eax, dword [esi + 0x40]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0x48]
push esi
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x38], 0
call fcn.0040cd10
mov byte [ebp - 4], 0x16
xor esi, esi
mov edi, dword [ebp - 0x24]
test edi, edi
je 0x477f52
nop
cmp dword [ebp - 0x20], 0x10
lea eax, [ebp - 0x34]
cmovae eax, dword [ebp - 0x34]
mov cl, byte [eax + esi]
cmp cl, 0x81
jb 0x477f28
cmp cl, 0x9f
jbe 0x477f30
mov al, cl
add al, 0x20
cmp al, 0x1c
ja 0x477f33
inc esi
jmp 0x477f4d
movzx eax, cl
push eax
call fcn.0045d7af
add esp, 4
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
cmovae ecx, dword [ebp - 0x34]
mov byte [ecx + esi], al
inc esi
cmp esi, edi
jb 0x477f10
mov eax, dword [ebp - 0x84]
xor esi, esi
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x477fce
nop dword [eax]
nop dword [eax + eax]
cmp edi, 0x10
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
setae byte [ebp + 0xb]
mov cl, byte [eax + esi]
cmp cl, 0x81
jb 0x477f91
cmp cl, 0x9f
jbe 0x477f99
mov al, cl
add al, 0x20
cmp al, 0x1c
ja 0x477f9c
inc esi
jmp 0x477fbf
movzx eax, cl
push eax
call fcn.0045d7af
add esp, 4
lea ecx, [ebp - 0x94]
cmp byte [ebp + 0xb], 0
cmovne ecx, dword [ebp - 0x94]
mov byte [ecx + esi], al
mov edi, dword [ebp - 0x80]
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x477f70
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0xa4]
lea edx, [ebp - 0x34]
call fcn.00476b30
cmp dword [ebp - 0x20], 0x10
lea esi, [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x34]
xor ecx, ecx
cmp dword [ebp - 0x24], ecx
jbe 0x478008
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0x24]
jb 0x477ff6
mov esi, dword [ebp - 0x98]
lea eax, [ebp - 0x34]
push edx
push eax
lea eax, [ebp - 0x138]
push eax
lea ecx, [esi + 4]
call fcn.00419bd0
mov eax, dword [eax + 4]
test eax, eax
jne 0x47802c
mov eax, dword [esi + 8]
mov ecx, esi
cmp eax, dword [ecx + 8]
jne 0x4780db
lea eax, [ebp - 0x34]
push eax
lea ecx, [esi + 4]
call fcn.004190c0
mov esi, eax
lea eax, [ebp - 0x94]
cmp esi, eax
je 0x478069
push dword [ebp - 0x18]
cmp edi, 0x10
mov ecx, eax
cmovae ecx, dword [ebp - 0x94]
push ecx
mov ecx, esi
call fcn.0040cef0
mov edi, dword [ebp - 0x80]
lea ecx, [esi + 0x18]
lea eax, [ebp - 0x7c]
cmp ecx, eax
je 0x478087
cmp dword [ebp - 0x68], 0x10
push dword [ebp - 0x6c]
cmovae eax, dword [ebp - 0x7c]
push eax
call fcn.0040cef0
mov edi, dword [ebp - 0x80]
lea ecx, [esi + 0x30]
lea eax, [ebp - 0x64]
cmp ecx, eax
je 0x4780a5
cmp dword [ebp - 0x50], 0x10
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
call fcn.0040cef0
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x4c]
mov dword [esi + 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x50], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x58], eax
mov al, byte [ebp - 0x38]
mov byte [esi + 0x5c], al
mov al, byte [ebp - 0x37]
mov byte [esi + 0x5d], al
mov al, byte [ebp - 0x36]
mov byte [esi + 0x5e], al
mov al, byte [ebp - 0x35]
mov byte [esi + 0x5f], al
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x20]
cmp eax, 0x10
jb 0x47810e
mov ecx, dword [ebp - 0x34]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x478105
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x478286
push ecx
call fcn.0044efd0
add esp, 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x478153
mov ecx, dword [ebp - 0x64]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47814a
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x478286
push ecx
call fcn.0044efd0
add esp, 4
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x68]
cmp eax, 0x10
jb 0x478198
mov ecx, dword [ebp - 0x7c]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47818f
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x478286
push ecx
call fcn.0044efd0
add esp, 4
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
mov byte [ebp - 4], 0x1d
cmp edi, 0x10
jb 0x4781df
mov ecx, dword [ebp - 0x94]
lea eax, [edi + 1]
mov edx, ecx
cmp eax, 0x1000
jb 0x4781d6
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x478286
push ecx
call fcn.0044efd0
add esp, 4
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
inc edi
add ecx, 0x4c
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa0], ecx
cmp edi, dword [ebp - 0xa8]
jb 0x477e14
mov byte [ebp + 0xb], 1
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x47823b
push eax
call fcn.0044efd0
add esp, 4
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x478255
push eax
call fcn.0044efd0
add esp, 4
jmp 0x478255
mov byte [ebp + 0xb], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
mov dword [ebp - method.CFile.virtual_0], vtable.CFile.0
call fcn.00475c80
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
call fcn.0045d555
int3