Function at 0x102436b
Capabilities:
Encode data using xor
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x10431dc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp esi, ebx
jne 0x102438d
xor eax, eax
jmp 0x1024699
push edi
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x18], ebx
call fcn.0101a713
push ebx
mov edi, eax
push edi
push 0x8c
push 0x1008cb0
call fcn.0101c3d2
cmp edi, ebx
jl 0x1024695
cmp dword [ebp - 0x30], 5
jne 0x10243cd
cmp dword [ebp - 0x38], 1
je 0x10243d2
mov edi, 0x80004005
cmp edi, ebx
jl 0x1024695
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
mov esi, 0x80070000
jne 0x1024422
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x102440f
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0x9d
push 0x1008cb0
call fcn.0101c3d2
cmp edi, ebx
jl 0x1024671
push ebx
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [ebp - 0x1c], eax
jne 0x1024460
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x102444d
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0xa9
push 0x1008cb0
call fcn.0101c3d2
cmp edi, ebx
jl 0x1024671
push ebx
push ebx
push ebx
push 2
push ebx
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
cmp eax, ebx
mov dword [ebp - 0x28], eax
jne 0x10244a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x102448f
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0xb5
push 0x1008cb0
call fcn.0101c3d2
cmp edi, ebx
jl 0x1024663
push ebx
push ebx
push ebx
push 4
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, ebx
mov dword [ebp - 0x24], eax
jne 0x10244e3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x10244d0
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0xc0
push 0x1008cb0
call fcn.0101c3d2
cmp edi, ebx
jl 0x1024655
push dword [ebp - 0x1c]
call fcn.0100d5aa
mov esi, eax
cmp esi, ebx
pop ecx
mov dword [ebp - 0x3c], esi
jne 0x1024502
mov edi, 0x8007000e
cmp edi, ebx
jl 0x102464a
cmp dword [ebp - 0x24], ebx
je 0x102451e
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push esi
call fcn.01012c5e
add esp, 0xc
push dword [ebp - 0x1c]
push esi
call fcn.01023fd6
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x34], edi
jl 0x102464a
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff8
cmp eax, ebx
mov byte [ebp - 0x14], 0x12
mov byte [ebp - 0x13], 0x98
mov byte [ebp - 0x12], 0xef
mov byte [ebp - 0x11], 0x6b
mov byte [ebp - 0x10], 0x12
mov byte [ebp - 0xf], 0xc5
mov byte [ebp - 0xe], 0xcc
mov byte [ebp - 0xd], 0xe4
mov byte [ebp - 0xc], 0x98
mov byte [ebp - 0xb], 0x42
mov byte [ebp - 0xa], 0x71
mov byte [ebp - 9], 8
mov byte [ebp - 8], 0x96
mov byte [ebp - 7], 0xee
mov byte [ebp - 6], 0xd2
mov byte [ebp - 5], 0x3e
jl 0x1024619
mov edx, dword [eax + esi]
mov ecx, dword [eax + esi + 4]
mov dword [ebp - 0x18], ebx
add dword [ebp - 0x18], 0x77cf6050
add dword [ebp - 0x18], 0x4f1fd6d0
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x18], ebx
add dword [ebp - 0x18], 0x60b920f7
add dword [ebp - 0x18], 0x3d7e58c2
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x2c], 0x20
mov dword [ebp - 0x18], edi
mov edi, edx
shr edi, 5
mov ebx, edx
shl ebx, 4
xor edi, ebx
dec dword [ebp - 0x2c]
mov ebx, esi
shr ebx, 0xb
and ebx, 3
mov ebx, dword [ebp + ebx*4 - 0x14]
add ebx, esi
sub esi, dword [ebp - 0x18]
add edi, edx
xor edi, ebx
sub ecx, edi
mov edi, ecx
shr edi, 5
mov ebx, ecx
shl ebx, 4
xor edi, ebx
mov ebx, esi
and ebx, 3
mov ebx, dword [ebp + ebx*4 - 0x14]
add ebx, esi
add edi, ecx
xor edi, ebx
xor ebx, ebx
sub edx, edi
cmp dword [ebp - 0x2c], ebx
ja 0x10245bb
mov esi, dword [ebp - 0x3c]
mov dword [eax + esi], edx
dec eax
mov dword [eax + esi + 5], ecx
jns 0x1024582
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
inc eax
push eax
call fcn.0100d5aa
cmp eax, ebx
pop ecx
mov dword [ebp - 0x18], eax
jne 0x1024630
mov edi, 0x8007000e
cmp edi, ebx
jl 0x102464a
push dword [ebp - 0x1c]
push esi
push eax
call fcn.01012c5e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov byte [ecx + eax], bl
cmp esi, ebx
je 0x1024655
push esi
call fcn.0100dd74
pop ecx
cmp dword [ebp - 0x24], ebx
je 0x1024663
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
cmp dword [ebp - 0x28], ebx
je 0x1024671
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x20], 0xffffffff
je 0x1024680
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, ebx
jge 0x1024695
cmp dword [ebp - 0x18], ebx
je 0x1024695
push dword [ebp - 0x18]
call fcn.0100dd74
pop ecx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0100d61a
leave
ret 4