Function at 0x42dbb0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x10c
mov dword [0x49c05c], 0
mov dword [0x49bec8], 0
mov dword [0x49becc], 0
cmp byte [ecx], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [0x49bed4], esi
mov dword [0x49bed0], 0
jne 0x42dc0a
push 0x104
lea eax, [ebp - 0x10c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
jmp 0x42dc1f
lea edx, [ebp - 0x10c]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x42dc12
lea eax, [ebp - 0x10c]
push 0x47a340
push eax
call fcn.0045b48c
add esp, 8
mov dword [0x49c088], eax
test eax, eax
je 0x42de4d
test esi, esi
jle 0x42dc55
push 0
push esi
push eax
call fcn.0045ba5a
mov eax, dword [0x49c088]
add esp, 0xc
push eax
push 1
push 0x10
push 0x49bed8
call fcn.0045b66f
mov eax, dword [0x49bedc]
push dword [0x49c088]
add eax, esi
mov dword [0x49c05c], eax
mov eax, dword [0x49bee0]
mov dword [0x49c078], eax
call fcn.0045b20d
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x584d5044
push eax
push 0x49bed8
mov byte [ebp - 4], 0
call fcn.0045d590
add esp, 0x20
test eax, eax
jne 0x42de4d
mov ecx, dword [0x49c078]
mov ebx, dword [0x49bee4]
shl ecx, 5
add ebx, 0x10
add ebx, ecx
push ebx
mov dword [ebp + 8], ebx
call fcn.0045d581
add esp, 4
mov dword [0x49bed0], eax
test eax, eax
je 0x42de4d
lea eax, [ebp - 0x10c]
push 0x47a340
push eax
call fcn.0045b48c
add esp, 8
mov dword [0x49c088], eax
test esi, esi
jle 0x42dd06
push 0
push esi
push eax
call fcn.0045ba5a
mov eax, dword [0x49c088]
add esp, 0xc
push edi
push eax
push 1
push ebx
push dword [0x49bed0]
call fcn.0045b66f
push dword [0x49c088]
call fcn.0045b20d
mov eax, dword [ebp + 0x14]
add esp, 0x14
sar eax, 0x18
xor ebx, ebx
movzx ecx, al
xor edi, edi
mov eax, 0x24924925
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
cmp dword [ebp + 0x10], 0xffffffff
mov dword [ebp + 0xc], ecx
je 0x42ddc3
lea eax, [ebp - 0x10c]
push 0x47a340
push eax
call fcn.0045b48c
add esp, 8
mov dword [0x49c088], eax
test esi, esi
jle 0x42dd77
push edi
push esi
push eax
call fcn.0045ba5a
mov eax, dword [0x49c088]
add esp, 0xc
push eax
call fcn.0045b2c9
add esp, 4
test eax, eax
js 0x42dd9e
mov esi, dword [ebp + 0xc]
push dword [0x49c088]
add eax, esi
inc edi
add ebx, eax
call fcn.0045b2c9
add esp, 4
test eax, eax
jns 0x42dd87
push dword [0x49c088]
call fcn.0045b20d
movzx eax, bx
add esp, 4
cmp dword [ebp + 0x10], eax
je 0x42ddc0
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
sub edi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
cmp ebx, 0xffffffff
jne 0x42ddda
mov dword [0x49c07c], 0xaa
lea eax, [ebx + 0x56]
jmp 0x42de13
movzx eax, byte [ebp + 0x16]
movzx ecx, bl
imul ecx, eax
mov eax, 0xaaaaaaab
mul ecx
movzx ecx, bh
shr edx, 1
xor edx, edi
movzx eax, dl
mov dword [0x49c07c], eax
movzx eax, byte [ebp + 0x17]
imul ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 2
xor edx, edi
xor edx, 0xffffffaa
movzx eax, dl
mov dword [0x49c080], eax
xor ecx, ecx
mov dword [0x49bec8], 1
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x10c]
lea ecx, [ecx + 1]
mov byte [ecx + 0x49bf57], al
test al, al
jne 0x42de30
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret