Function at 0x433330
Capabilities:
Encode data using xor
Get file size
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x84e168
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8943b8]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x34], ebp
xor esi, esi
push esi
push 0x80
push 3
push esi
push 1
push 1
mov edi, vtable.CFileReader.0
push str.score123.dat
mov dword [esp + 0x70], edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x58], eax
jne 0x433398
xor eax, eax
mov dword [esp + 0x58], eax
cmp eax, esi
mov dword [esp + 0x90], esi
jne 0x4333d6
mov ecx, ebp
call fcn.004329e0
mov eax, dword [esp + 0x58]
cmp eax, esi
mov dword [esp + 0x54], edi
je 0x4333bd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80000
mov dword [esp + 0x40], esi
call fcn.007fb991
mov edi, eax
mov dword [esp + 0x3c], edi
push 0x80000
mov byte [esp + 0x98], 1
mov dword [esp + 0x4c], esi
call fcn.007fb991
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x58]
push esi
push eax
mov byte [esp + 0x98], 2
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, dword [esp + 0x58]
push 0
lea ecx, [esp + 0x60]
push ecx
mov esi, eax
push esi
push edi
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test esi, esi
jbe 0x433459
lea edx, [edi + esi - 1]
lea ecx, [ecx]
mov al, cl
mov bl, 7
imul bl
xor al, byte [edx]
mov ebx, dword [esp + 0x40]
mov byte [ebx + ecx], al
add ecx, 1
sub edx, 1
cmp ecx, esi
jb 0x433440
push 0x80000
push edi
push esi
push ebx
call fcn.00409ab0
add esp, 0x10
test eax, eax
jne 0x4334b7
mov ecx, ebp
call fcn.004329e0
push ebx
call fcn.00820846
push edi
call fcn.00820846
mov eax, dword [esp + 0x60]
add esp, 8
test eax, eax
mov dword [esp + 0x54], vtable.CFileReader.0
je 0x4333bd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 4]
mov dword [ebp + 4], eax
mov ecx, dword [edi + 8]
mov dword [ebp + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [ebp + 0xc], edx
mov eax, dword [edi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [edi + 0x14]
mov dword [ebp + 0x14], ecx
mov edx, dword [edi + 0x18]
mov dword [ebp + 0x18], edx
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x1c], eax
mov ecx, dword [edi + 0x20]
mov dword [ebp + 0x20], ecx
mov edx, dword [edi + 0x24]
mov dword [ebp + 0x24], edx
mov eax, dword [edi + 0x28]
mov dword [ebp + 0x28], eax
mov ecx, dword [edi + 0x2c]
mov dword [ebp + 0x2c], ecx
mov edx, dword [edi + 0x30]
mov dword [ebp + 0x30], edx
mov eax, dword [edi + 0x34]
mov dword [ebp + 0x34], eax
mov ecx, dword [edi + 0x38]
mov dword [ebp + 0x38], ecx
mov edx, dword [edi + 0x3c]
mov dword [ebp + 0x3c], edx
mov eax, dword [edi + 0x40]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp + 0x48]
mov edx, dword [ecx + 4]
lea ebx, [ebp + 0x44]
push edx
mov ecx, ebx
mov dword [esp + 0x40], 0x44
call fcn.0042f340
mov eax, dword [ebx + 4]
mov dword [eax + 4], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 8], 0
mov dword [eax], eax
mov eax, dword [ebx + 4]
mov dword [eax + 8], eax
mov eax, dword [edi + 0x44]
test eax, eax
mov esi, 0x48
mov dword [esp + 0x3c], esi
jbe 0x433586
mov dword [esp + 0x1c], eax
lea esp, [esp]
mov eax, dword [esi + edi]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x4c]
add esi, 4
push edx
mov ecx, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], esi
call fcn.00430450
sub dword [esp + 0x1c], 1
jne 0x433560
mov eax, dword [ebp + 0x54]
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
lea ebx, [ebp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jne 0x4335d1
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
push edx
mov ecx, ebx
call fcn.0042f340
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
mov dword [esp + 0x18], ecx
call fcn.0081f6fa
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax + 0x11], 0
mov dword [esp + 0x1c], eax
je 0x43359d
mov eax, dword [ebx + 4]
mov dword [eax + 4], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 8], 0
mov dword [eax], eax
mov eax, dword [ebx + 4]
mov dword [eax + 8], eax
mov eax, dword [esi + edi]
add esi, 4
test eax, eax
mov dword [esp + 0x3c], esi
jbe 0x433621
mov dword [esp + 0x1c], eax
mov eax, dword [esi + edi]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x4c]
add esi, 4
push edx
mov ecx, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], esi
call fcn.00430450
sub dword [esp + 0x1c], 1
jne 0x4335fb
mov eax, dword [ebp + 0xa0]
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
lea ebx, [ebp + 0x9c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jne 0x433672
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
push edx
mov ecx, ebx
call fcn.00439950
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
mov dword [esp + 0x18], ecx
call fcn.0081f6fa
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax + 0x15], 0
mov dword [esp + 0x1c], eax
je 0x43363e
mov eax, dword [ebx + 4]
mov dword [eax + 4], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 8], 0
mov dword [eax], eax
mov eax, dword [ebx + 4]
mov dword [eax + 8], eax
mov eax, dword [esi + edi]
add esi, 4
test eax, eax
jbe 0x4336c9
mov dword [esp + 0x1c], eax
mov eax, dword [esi + edi]
mov ecx, dword [esi + edi + 4]
add esi, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x4c]
push ecx
add esi, 4
mov ecx, ebx
mov dword [esp + 0x44], esi
call fcn.00457be0
sub dword [esp + 0x1c], 1
jne 0x433698
mov eax, dword [esi + edi]
add esi, 4
test eax, eax
mov dword [esp + 0x3c], esi
jbe 0x43396a
lea ebx, [ebp + 0xa8]
add ebp, 0x1ac
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
mov edx, dword [ebx + 4]
mov ebp, dword [edx + 4]
cmp byte [ebp + 0x15], 0
mov dword [esp + 0x1c], ebp
jne 0x433728
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
call fcn.00439950
mov ecx, dword [esp + 0x1c]
mov ebp, dword [ebp]
push ecx
call fcn.0081f6fa
add esp, 4
cmp byte [ebp + 0x15], 0
mov dword [esp + 0x1c], ebp
je 0x433703
mov eax, dword [ebx + 4]
mov dword [eax + 4], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 8], 0
mov dword [eax], eax
mov eax, dword [ebx + 4]
mov dword [eax + 8], eax
mov eax, dword [esi + edi]
add esi, 4
test eax, eax
jbe 0x43377b
mov ebp, eax
mov eax, dword [esi + edi]
mov ecx, dword [esi + edi + 4]
add esi, 4
lea edx, [esp + 0x48]
mov dword [esp + 0x48], eax
push edx
lea eax, [esp + 0x64]
mov dword [esp + 0x50], ecx
add esi, 4
push eax
mov ecx, ebx
mov dword [esp + 0x44], esi
call fcn.00457be0
sub ebp, 1
jne 0x43374c
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x14]
mov ecx, dword [eax]
add ebp, 0xfffffff8
cmp dword [eax - 4], ecx
mov dword [esp + 0x18], ecx
jbe 0x43379a
call fcn.0081ff70
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [eax - 4]
cmp edx, dword [eax]
mov dword [esp + 0x1c], edx
jbe 0x4337b2
call fcn.0081ff70
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add edx, 0xfffffff8
jne 0x4337c4
call fcn.0081ff70
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x1c], ecx
je 0x43383d
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov dword [esp + 0x20], edx
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, dword [esp + 0x20]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
lea edx, [eax + edx*8]
mov dword [esp + 0x2c], edx
mov eax, ecx
je 0x433836
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x18]
mov edx, dword [eax]
mov dword [eax + ecx], edx
mov edx, dword [eax + 4]
mov dword [eax + ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [eax + ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [eax + ecx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [eax + ecx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [eax + ecx + 0x14], edx
add eax, 0x18
cmp eax, dword [esp + 0x20]
jne 0x433805
mov eax, dword [esp + 0x2c]
mov dword [ebp + 8], eax
mov eax, dword [esi + edi]
add esi, 4
test eax, eax
mov dword [esp + 0x3c], esi
jbe 0x43394f
mov dword [esp + 0x20], eax
mov ecx, dword [esi + edi]
mov edx, dword [esi + edi + 4]
mov eax, dword [esi + edi + 8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + edi + 0xc]
mov dword [esp + 0x70], edx
mov edx, dword [esi + edi + 0x10]
mov dword [esp + 0x74], eax
mov eax, dword [esi + edi + 0x14]
add esi, 0x18
xor ebx, ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x18], ebx
mov eax, dword [ebp + 4]
test eax, eax
je 0x433934
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x433934
mov eax, dword [ebp + 4]
test eax, eax
je 0x4338dc
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4338e1
call fcn.0081ff70
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
cmp edx, dword [eax + ecx]
jne 0x433927
mov eax, ecx
test eax, eax
je 0x433911
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x433916
call fcn.0081ff70
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
cmp edx, dword [ecx + eax + 8]
je 0x433940
add ebx, 1
add dword [esp + 0x18], 0x18
jmp 0x433892
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebp
call fcn.00430e20
sub dword [esp + 0x20], 1
jne 0x433853
mov ebx, dword [esp + 0x24]
add dword [esp + 0x14], 0x10
add ebx, 0xc
sub dword [esp + 0x28], 1
mov dword [esp + 0x24], ebx
jne 0x4336f3
mov ebp, dword [esp + 0x34]
mov ecx, ebp
call fcn.00431250
mov edx, dword [esp + 0x40]
push edx
mov byte [ebp], 1
call fcn.00820846
push edi
call fcn.00820846
mov eax, dword [esp + 0x60]
add esp, 8
test eax, eax
mov dword [esp + 0x54], vtable.CFileReader.0
je 0x43399f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret