Function at 0x10003d7c
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
push 0x800
call fcn.100326a0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x10003de1
jbe 0x10003da6
nop
nop
je 0x10003da4
xchg ebp, ebp
nop
jmp 0x10003daf
ja 0x10003daa
xchg esi, esi
jbe 0x10003d9d
je 0x10003dc1
or bh, byte [eax + 0x84]
mov eax, 0x84
jmp 0x1000419b
jl 0x10003dd1
add byte [eax - 0x78f48870], dl
leave
nop
nop
ja 0x10003dd1
xchg ecx, ecx
jge 0x10003dd1
je 0x10003dcc
jo 0x10003dbc
jno 0x10003dbc
sal byte [ebx + 0xb], 0x74
pop es
jae 0x10003dde
je 0x10003ddc
xchg ebp, ebp
ja 0x10003ddc
xchg edx, edx
nop
jmp 0x10003de1
jae 0x10003dd3
and ebp, ebx
pop es
jmp 0x10003dea
mov esi, esi
jg 0x10003ded
nop
jle 0x10003ded
jmp 0x10003de3
js 0x10003df8
nop
xchg edi, edi
jg 0x10003dfd
xchg ecx, ecx
jle 0x10003dfd
je 0x10003dfa
js 0x10003def
mov al, byte [0x6a006a]
push 0
push 0
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x14]
add eax, 0x17
push eax
call fcn.10004270
add esp, 8
cmp eax, 0x3e9
je 0x10003eb2
mov ecx, dword [ebp - 8]
push ecx
call fcn.10032600
add esp, 4
jbe 0x10003e43
nop
nop
nop
jmp 0x10003e50
je 0x10003e4b
xchg edx, edx
ja 0x10003e4b
xchg ecx, ecx
jbe 0x10003e3e
je 0x10003e62
xor eax, 0x8790097f
sar byte [eax + 9], cl
jg 0x10003e5b
nop
xchg edx, edx
js 0x10003e60
xchg ecx, ecx
jns 0x10003e60
ja 0x10003e5d
jg 0x10003e52
mov gs, ebx
pop es
jmp 0x10003e69
mov eax, eax
jo 0x10003e6c
nop
jno 0x10003e6c
jmp 0x10003e62
jl 0x10003e7f
jge 0x10003e7f
jne 0x10003e84
test dword [edi], ecx
add byte [eax], al
add byte [ebx + 0x749090ff], cl
or dword [edi + eax - 0x79], esi
sar byte [edi - 0x12], 0x7e
in al, dx
mov edi, edi
nop
nop
je 0x10003e84
je 0x10003e84
xchg eax, eax
jg 0x10003e6f
jle 0x10003e6f
invalid
mov eax, 0x1fe
jmp 0x1000419b
cmp dword [ebp + 0x14], 0
je 0x1000416e
cmp dword [ebp + 0x14], 0x800
jae 0x10003ecd
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x20], edx
jmp 0x10003ed4
mov dword [ebp - 0x20], 0x800
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xc], eax
jne 0x10003eed
je 0x10003eed
jbe 0x10003ef2
xchg byte [edi], cl
add byte [eax], al
add byte [eax + 0x740b7790], dl
add al, 0x87
sal byte [edi], 0x73
out dx, al
nop
nop
ja 0x10003ef2
je 0x10003eed
xchg eax, eax
ja 0x10003eed
jae 0x10003edd
jb 0x10003edd
test dword [edx], ebp
push 0
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x10003f78
jne 0x10003f19
mov ebx, ebx
nop
nop
je 0x10003f17
nop
jmp 0x10003f22
xchg edi, edi
ja 0x10003f1d
jne 0x10003f10
xchg edi, edi
xor ebx, ebp
pop es
jmp 0x10003f2b
mov edi, edi
jg 0x10003f2e
nop
jle 0x10003f2e
jmp 0x10003f24
mov edx, dword [ebp - 0x18]
push edx
call fcn.10032600
add esp, 4
mov eax, dword [ebp - 8]
push eax
call fcn.10032600
add esp, 4
mov eax, 0x1f9
jmp 0x1000419b
jo 0x10003f85
ja 0x10003f83
xchg ebx, ebx
je 0x10003f83
xchg ecx, ecx
nop
jmp 0x10003f88
jo 0x10003f7a
or edi, dword [ebx + 4]
jnp 0x10003f8e
mov ecx, ecx
jmp 0x10003f9c
nop
nop
ja 0x10003f97
xchg edi, edi
je 0x10003f97
nop
jnp 0x10003f8a
xchg ebp, ebp
add dword [ebx + 0xf00f07d], 0x12084
add byte [ebx - 0x74ae0fb3], cl
push ebp
clc
cmp dword [ebp - 0x10], 0
je 0x100040c6
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x14]
add eax, 0x1ce
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.100042d0
add esp, 0x14
jnp 0x10003fd3
mov edi, edi
nop
nop
ja 0x10003fd1
xchg ebx, ebx
jmp 0x10003fdb
je 0x10003fd6
nop
jnp 0x10003fc9
xchg eax, eax
add byte [ebx + 0xb], dh
jae 0x10003fe8
je 0x10003fe6
xchg edx, edx
ja 0x10003fe6
xchg edi, edi
nop
jmp 0x10003feb
jae 0x10003fdd
fucomp st(3)
pop es
jmp 0x10003ff4
mov ebp, ebp
jg 0x10003ff7
nop
jle 0x10003ff7
jmp 0x10003fed
jne 0x1000400a
je 0x1000400a
jbe 0x1000400f
xchg byte [edi], cl
add byte [eax], al
add byte [eax - 0x78f48b70], dl
sal byte [edi + 7], cl
nop
nop
je 0x1000400f
xchg edx, edx
ja 0x1000400f
ja 0x1000400f
jae 0x10003ffa
jb 0x10003ffa
and ch, byte [edx]
push 0
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x100040c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10032600
add esp, 4
mov edx, dword [ebp - 8]
push edx
call fcn.10032600
add esp, 4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x27
je 0x1000405e
jmp 0x1000407e
mov eax, 0x1f6
jmp 0x1000419b
mov eax, 0x1fa
jmp 0x1000419b
jmp 0x10004124
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10032600
add esp, 4
mov edx, dword [ebp - 8]
push edx
call fcn.10032600
add esp, 4
jmp 0x100040e7
mov ecx, ecx
jae 0x100040ea
nop
jb 0x100040ea
jmp 0x100040e0
jo 0x100040f7
ja 0x100040f5
xchg esi, esi
je 0x100040f5
xchg ebp, ebp
nop
jmp 0x100040fa
jo 0x100040ec
fstp xword [eax + 0x1fb]
mov eax, 0x1fb
jmp 0x1000419b
jg 0x1000412f
nop
xchg edx, edx
js 0x10004134
xchg ebp, ebp
jns 0x10004134
ja 0x10004131
jg 0x10004126
add byte [esp + eax - 0x70], bh
jl 0x1000413a
nop
nop
jmp 0x10004148
ja 0x10004143
xchg ecx, ecx
je 0x10004143
xchg edi, edi
nop
jl 0x10004136
ja 0x1000415a
or dword [ebx + 0x452b1445], 0xfffffff0
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
jnp 0x10004164
jp 0x10004164
jl 0x10004169
mov word [edi], cs
add byte [eax], al
add byte [ebp + 0xd], bh
jge 0x10004169
nop
nop
ja 0x10004164
xchg edi, edi
je 0x10004164
jo 0x10004154
jno 0x10004154
test ecx, ebp
inc esp
std
invalid
jmp 0x10003eb2
jae 0x1000417b
je 0x10004179
xchg eax, eax
ja 0x10004179
xchg ebp, ebp
nop
jmp 0x1000417e
jae 0x10004170
sbb cl, byte [ebx - 0x17ae17b3]
jns 0x10004169
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10032600
add al, byte [eax]
add esp, 4
mov edx, dword [ebp - 8]
push edx
call fcn.10032600
add esp, 4
mov eax, 0x82
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret