Function at 0x10003440
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.100326a0
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x100034b7
jnp 0x10003473
mov eax, eax
jmp 0x10003481
nop
nop
ja 0x1000347c
xchg ebx, ebx
je 0x1000347c
nop
jnp 0x1000346f
xchg eax, eax
adc eax, 0xf7d117c
jl 0x10003494
jge 0x10003494
jne 0x10003499
test dword [edi], ecx
add byte [eax], al
add byte [ebx - 0x6ff48b13], cl
mov ebp, ebp
je 0x10003499
nop
nop
je 0x10003494
xchg ebx, ebx
jg 0x10003484
jle 0x10003484
fdivr dword [eax + 0x84]
mov eax, 0x84
jmp 0x100037da
jne 0x100034ca
je 0x100034ca
jbe 0x100034cf
xchg byte [edi], cl
add byte [eax], al
add byte [edi + 0xd], dh
ja 0x100034cf
nop
nop
je 0x100034ca
xchg esi, esi
ja 0x100034ca
jae 0x100034ba
jb 0x100034ba
xor eax, 0xc7d83
cmp dword [ebp + 0xc], 0
jne 0x1000356e
push 0x11
push 0x10056abc
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.10018ae0
add esp, 0x10
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0xffffffff
jne 0x10003537
jl 0x1000350c
jge 0x1000350c
jne 0x10003511
test dword [edi], ecx
add byte [eax], al
add byte [ebx + 0x749090f6], cl
or dword [edx + eax - 0x79], esi
invalid
mov esi, esi
nop
nop
je 0x10003511
je 0x1000350c
xchg edi, edi
jg 0x100034fc
jle 0x100034fc
and edi, dword [eax + 0x82]
mov eax, 0x82
jmp 0x100037da
jne 0x10003541
mov ecx, ecx
nop
nop
je 0x1000353f
jmp 0x1000354b
xchg edx, edx
ja 0x10003546
nop
jne 0x10003539
xchg ebx, ebx
sub dword [ebx - 0x74adf3ab], ecx
inc ebp
or byte [eax - 0x18], dl
dec edx
or al, 0
add byte [ebx + 0x458908c4], al
or al, 0x83
jge 0x1000356d
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call 0x100041a2
add esp, 8
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0xffffffff
jne 0x1000356e
push dword [ebp + 0xa]
mov eax, 0x1f5
jmp 0x100037da
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 0x1000358d
mov eax, 0x1f5
jmp 0x100037da
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 0x10003791
jmp 0x100035b7
mov esi, esi
jg 0x100035ba
nop
jle 0x100035ba
jmp 0x100035b0
jne 0x100035cd
je 0x100035cd
jbe 0x100035d2
xchg byte [edi], cl
add byte [eax], al
add byte [eax + 0x770b7490], dl
or dword [edi + 0x730077ed], eax
out dx, al
nop
nop
je 0x100035d2
ja 0x100035d2
xchg ebp, ebp
ja 0x100035cd
jae 0x100035bd
jb 0x100035bd
and ch, byte [edx]
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 0x1000364b
jmp 0x100035f8
mov ecx, ecx
jg 0x100035fb
nop
jle 0x100035fb
jmp 0x100035f1
js 0x10003606
nop
xchg ebx, ebx
jg 0x1000360b
xchg eax, eax
jle 0x1000360b
je 0x10003608
js 0x100035fd
mov al, byte [0xf5fc45c7]
add dword [eax], eax
add byte [esi + 4], dh
mov dword [ebp - 4], 0x1f5
jbe 0x10003618
nop
nop
jmp 0x10003626
je 0x10003621
xchg edi, edi
ja 0x10003621
xchg edx, edx
nop
jbe 0x10003614
je 0x10003638
xor eax, 0x166e9
add byte [esi + 8], dh
nop
nop
je 0x10003633
jmp 0x10003791
xchg edi, edi
jmp 0x1000363f
rcl byte [eax + 0x1374f176], cl
add eax, 0xdb8b07eb
jmp 0x10003648
mov ebx, ebx
jae 0x1000364b
nop
jb 0x1000364b
jmp 0x10003641
jbe 0x1000365e
ja 0x1000365e
jnp 0x10003663
mov ecx, dword [edi]
add byte [eax], al
add byte [edx + 0xd], bh
jp 0x10003663
mov ebp, ebp
nop
nop
ja 0x1000365e
xchg ebx, ebx
js 0x1000364e
jns 0x1000364e
add byte [ebx + 0x5589ec55], cl
in al, 0xc7
inc ebp
loopne 0x1000366d
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
jmp 0x1000367b
add byte [eax], al
add bl, ch
or dword [ebx - 0x3f7c1fbb], ecx
add dword [ecx + 0x4d8be045], ecx
loopne 0x100036ba
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x10]
jae 0x10003722
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 0x100036bb
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 0x10003672
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
cmp eax, dword [ebp + 0x10]
jne 0x1000375c
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.10003b08
add esp, 0x10
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x82
je 0x10003753
jmp 0x10003791
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp 0x10003765
mov ebp, ebp
jae 0x10003768
nop
jb 0x10003768
jmp 0x1000375e
jo 0x10003775
ja 0x10003773
xchg eax, eax
je 0x10003773
xchg ebx, ebx
nop
jmp 0x10003778
jo 0x1000376a
or dword [ebx + 0x488bec45], 0xec558b10
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 0x1000358d
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.10032600
add esp, 4
cmp dword [ebp - 4], 0x82
jne 0x100037b3
cmp dword [ebp - 0xc], 0
jne 0x100037b3
mov dword [ebp - 4], 0x1fd
jmp 0x100037bc
mov edx, edx
js 0x100037bf
nop
jns 0x100037bf
jmp 0x100037b5
jne 0x100037d2
je 0x100037d2
jbe 0x100037d7
xchg byte [edi], cl
add byte [eax], al
add byte [eax - 0x78f48b70], dl
div byte [edi + 7]
nop
nop
je 0x100037d7
xchg esi, esi
ja 0x100037d7
ja 0x100037d2
jae 0x100037c2
jb 0x100037c2
mov cs, word [ebx + 0x5e5ffc45]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret