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 0x10003475
mov eax, eax
nop
nop
jmp 0x10003481
ja 0x1000347c
xchg ebp, ebp
je 0x1000347c
nop
jnp 0x1000346f
xchg esi, esi
mov al, byte [0xf7d117c]
jl 0x10003494
jge 0x10003494
jne 0x10003499
test dword [edi], ecx
add byte [eax], al
add byte [ebx + 0x749090ed], cl
or dword [edi + eax - 0x79], esi
in eax, dx
mov ebp, ebp
nop
nop
je 0x10003499
je 0x10003499
xchg ebp, ebp
jg 0x10003484
jle 0x10003484
xor bh, byte [eax + 0x84]
mov eax, 0x84
jmp 0x100037da
jnp 0x100034ca
jp 0x100034ca
jl 0x100034cf
mov word [edi], cs
add byte [eax], al
add byte [eax + 0x770b7d90], dl
add al, 0x87
sal byte [eax + eax + 0x70], cl
out dx, al
nop
nop
jge 0x100034cf
ja 0x100034ca
xchg edx, edx
je 0x100034ca
jo 0x100034ba
jno 0x100034ba
and al, byte [ebx + 0xf000c7d]
test dword [ebp + 0x6a000000], edx
adc dword [eax - 0x44], ebp
push 5
adc byte [ebx - 0x74aff3bb], cl
dec ebp
or byte [ecx - 0x18], dl
push ebp
add dword [eax], eax
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 0x10018ae0
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 - 0x6ff48b25], cl
mov ebx, ebx
je 0x10003511
nop
nop
je 0x1000350c
xchg ebp, ebp
jg 0x100034fc
jle 0x100034fc
adc byte [eax + 0x82], bh
mov eax, 0x82
jmp 0x100037da
jne 0x10003540
mov ecx, ecx
nop
nop
nop
jmp 0x1000354b
je 0x10003546
xchg eax, eax
ja 0x10003546
jne 0x10003539
xchg edx, edx
and ecx, dword [ebx - 0x74adf3ab]
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 eax, eax
jg 0x100035ba
nop
jle 0x100035ba
jmp 0x100035b0
jnp 0x100035cd
jp 0x100035cd
jl 0x100035d2
mov word [edi], cs
add byte [eax], al
add byte [ebp + 0xd], bh
jge 0x100035d2
nop
nop
ja 0x100035cd
xchg ecx, ecx
je 0x100035cd
jo 0x100035bd
jno 0x100035bd
or dword [edx], ebp
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 ebp, ebp
js 0x100035fb
nop
jns 0x100035fb
jmp 0x100035f1
jg 0x10003606
nop
xchg ecx, ecx
js 0x1000360b
xchg eax, eax
jns 0x1000360b
ja 0x10003608
jg 0x100035fd
add bh, 0x45
cld
cmc
add dword [eax], eax
add byte [edx + ecx - 0x70], bh
mov dword [ebp - 4], 0x1f5
jl 0x1000361e
nop
nop
ja 0x1000361c
xchg ebp, ebp
je 0x1000361c
jmp 0x10003626
xchg ecx, ecx
nop
jl 0x10003614
ja 0x10003638
shr ecx, 0x66
add dword [eax], eax
add byte [eax + ecx - 0x70], bh
jmp 0x10003791
nop
nop
ja 0x10003633
xchg ebx, ebx
jmp 0x1000363f
in eax, dx
nop
jl 0x1000362d
ja 0x10003651
mov ebx, ebp
pop es
jmp 0x10003648
mov edi, edi
jo 0x1000364b
nop
jno 0x1000364b
jmp 0x10003641
jl 0x1000365e
jge 0x1000365e
jne 0x10003663
test dword [edi], ecx
add byte [eax], al
add byte [ebx + 0x749090ff], cl
or dword [edx + eax - 0x79], esi
sar byte [edi - 0x12], 0x7e
in al, dx
mov edi, edi
nop
nop
je 0x10003663
je 0x1000365e
xchg eax, eax
jg 0x1000364e
jle 0x1000364e
and ecx, dword [ebx + 0x5589ec55]
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
jo 0x10003768
nop
jno 0x10003768
jmp 0x1000375e
jae 0x10003775
je 0x10003773
xchg ecx, ecx
ja 0x10003773
xchg edi, edi
nop
jmp 0x10003778
jae 0x1000376a
mov cl, byte [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 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 esi, esi
jg 0x100037bf
nop
jle 0x100037bf
jmp 0x100037b5
jne 0x100037d2
je 0x100037d2
jbe 0x100037d7
xchg byte [edi], cl
add byte [eax], al
add byte [eax - 0x78f48b70], dl
sal byte [edi + 7], cl
nop
nop
je 0x100037d7
xchg edx, edx
ja 0x100037d7
ja 0x100037d2
jae 0x100037c2
jb 0x100037c2
or byte [ebx + 0x5e5ffc45], cl
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret