Function at 0x100039e0
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov dword [ebp - 4], 0x82
mov dword [ebp - 0xc], 0
push 0x121
call fcn.1002c7e0
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x10003a57
jl 0x10003a18
nop
nop
ja 0x10003a16
xchg esi, esi
nop
jmp 0x10003a21
je 0x10003a1c
xchg eax, eax
jl 0x10003a0f
ja 0x10003a33
fidiv dword [ebp + 0x11]
jne 0x10003a34
je 0x10003a34
jbe 0x10003a39
xchg byte [edi], cl
add byte [eax], al
add byte [eax - 0x78f48b70], dl
div byte [edi + 7]
nop
nop
je 0x10003a39
xchg esi, esi
ja 0x10003a39
ja 0x10003a34
add byte [ebx - 0x12], dh
jae 0x10003a24
jb 0x10003a24
arpl word [eax + 0x84], di
mov eax, 0x84
jmp 0x10003d7a
jl 0x10003a6a
jge 0x10003a6a
jne 0x10003a6f
test dword [edi], ecx
add byte [eax], al
add byte [ebx - 0x6ff48b0a], cl
mov esi, esi
je 0x10003a6f
nop
nop
je 0x10003a6a
xchg ecx, ecx
jg 0x10003a5a
jle 0x10003a5a
mov dword [0xc7d83], eax
cmp dword [ebp + 0xc], 0
jne 0x10003b0e
push 0x11
push 0x10046c9c
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.1001e100
add esp, 0x10
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0xffffffff
jne 0x10003ad7
jne 0x10003aac
je 0x10003aac
jbe 0x10003ab1
xchg byte [edi], cl
add byte [eax], al
add byte [eax - 0x78f48b70], dl
in eax, dx
nop
nop
je 0x10003ab1
xchg ebp, ebp
ja 0x10003ab1
ja 0x10003ab1
jae 0x10003a9c
jb 0x10003a9c
fidivr dword [eax + 0x82]
mov eax, 0x82
jmp 0x10003d7a
jbe 0x10003adf
nop
nop
je 0x10003add
jmp 0x10003aeb
xchg ebx, ebx
ja 0x10003ae6
xchg ebx, ebx
nop
jbe 0x10003ad9
je 0x10003afd
cmp byte [ebx - 0x74adf3ab], cl
inc ebp
or byte [eax - 0x18], dl
dec edx
or al, 0
add byte [ebx + 0x458908c4], al
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call 0x10004742
add esp, 8
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0xffffffff
jne 0x10003b0e
or al, 0x83
jge 0x10003b0d
push dword [ebp + 0xa]
mov eax, 0x1f5
jmp 0x10003d7a
add byte [edx], ch
push 0
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x10003b2d
mov eax, 0x1f5
jmp 0x10003d7a
push 0
push 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 8]
jae 0x10003d31
jmp 0x10003b57
mov ebx, ebx
jae 0x10003b5a
nop
jb 0x10003b5a
jmp 0x10003b50
jbe 0x10003b6d
ja 0x10003b6d
jnp 0x10003b72
mov ecx, dword [edi]
add byte [eax], al
add byte [ebx - 0x6ff48537], cl
mov ecx, ecx
jp 0x10003b72
nop
nop
ja 0x10003b6d
xchg edi, edi
js 0x10003b5d
jns 0x10003b5d
sub dword [edx], 0xffffff8d
push ebp
invalid
push 0
lea edx, [ebp - 0x10]
push edx
push 0x121
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x10003beb
jmp 0x10003b98
mov eax, eax
jae 0x10003b9b
nop
jb 0x10003b9b
jmp 0x10003b91
jo 0x10003ba8
ja 0x10003ba6
xchg ecx, ecx
je 0x10003ba6
xchg esi, esi
nop
jmp 0x10003bab
jo 0x10003b9d
xchg edi, eax
inc ebp
cld
cmc
add dword [eax], eax
add byte [ebx + 4], bh
mov dword [ebp - 4], 0x1f5
jnp 0x10003bb8
mov edx, edx
jmp 0x10003bc6
nop
nop
ja 0x10003bc1
xchg ebx, ebx
je 0x10003bc1
nop
jnp 0x10003bb4
xchg eax, eax
cmp ch, cl
add word [eax], ax
add byte [ebx + 4], bh
mov ecx, ecx
jmp 0x10003bdf
jmp 0x10003d31
jmp 0x10003be8
mov esi, esi
js 0x10003beb
nop
jns 0x10003beb
jmp 0x10003be1
jnp 0x10003bfe
jp 0x10003bfe
jl 0x10003c03
mov word [edi], cs
add byte [eax], al
add byte [eax - 0x78f48870], dl
sar byte [ebp + 7], 0x74
add byte [eax - 0x12], dh
nop
nop
ja 0x10003c03
xchg eax, eax
jge 0x10003c03
je 0x10003bfe
jo 0x10003bee
jno 0x10003bee
ror dword [ebx + 0x5589ec55], 1
in al, 0xc7
inc ebp
loopne 0x10003c0d
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
jmp 0x10003c1b
add byte [eax], al
add bl, ch
or dword [ebx - 0x3f7c1fbb], ecx
add dword [ecx + 0x4d8be045], ecx
loopne 0x10003c5a
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x10]
jae 0x10003cc2
dec ebp
invalid
mov edx, dword [ebp - 0x18]
imul edx, edx, 0x13c6a5
sub edx, 0x27bcf213
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
and eax, 0xff
mov byte [ebp - 0x24], al
mov ecx, dword [ebp - 0x24]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, 8
and edx, 0xff
and edx, 0xff
loop 0x10003c5b
inc dword [eax]
add byte [eax], al
add byte [eax], al
add byte [ebx], dh
retf 0x4d88
xor ecx, edx
mov byte [ebp - 0x24], cl
mov eax, dword [ebp - 0x24]
and eax, 0xff
mov ecx, dword [ebp - 0x18]
shr ecx, 0x10
and ecx, 0xff
and ecx, 0xff
xor eax, ecx
mov byte [ebp - 0x24], al
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov eax, dword [ebp - 0x18]
shr eax, 0x18
and eax, 0xff
and eax, 0xff
xor edx, eax
mov byte [ebp - 0x24], dl
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp - 0x24]
and eax, 0xff
xor edx, eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x20]
mov byte [ecx], dl
jmp 0x10003c12
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
cmp eax, dword [ebp + 0x10]
jne 0x10003cfc
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.100040a8
add esp, 0x10
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x82
je 0x10003cf3
jmp 0x10003d31
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp 0x10003d05
mov ebx, ebx
js 0x10003d08
nop
jns 0x10003d08
jmp 0x10003cfe
jg 0x10003d13
nop
xchg esi, esi
js 0x10003d18
xchg eax, eax
jns 0x10003d18
ja 0x10003d15
jg 0x10003d0a
fisttp qword [ebx + 0x488bec45]
adc byte [ebx + 0x4a03ec55], cl
or al, 0x8b
inc ebp
or al, 3
ror dword [ecx - 0x316f3bb], 0xfd
invalid
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x14]
add ecx, dword [edx + 0xc]
mov eax, dword [ebp + 0xc]
add eax, ecx
mov dword [ebp + 0xc], eax
jmp 0x10003b2d
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.1002c770
add esp, 4
cmp dword [ebp - 4], 0x82
jne 0x10003d53
cmp dword [ebp - 0xc], 0
jne 0x10003d53
mov dword [ebp - 4], 0x1fd
jmp 0x10003d5c
mov ecx, ecx
jo 0x10003d5f
nop
jno 0x10003d5f
jmp 0x10003d55
jl 0x10003d72
jge 0x10003d72
jne 0x10003d77
test dword [edi], ecx
add byte [eax], al
add byte [ebx + 0x749090c0], cl
or dword [edi + eax - 0x79], esi
sar byte [edi - 0x12], 0x7e
in al, dx
mov eax, eax
nop
nop
je 0x10003d77
je 0x10003d77
xchg eax, eax
jg 0x10003d62
jle 0x10003d62
fisttp qword [ebx + 0x5e5ffc45]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret