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 edx, edx
nop
jmp 0x10003daf
ja 0x10003daa
xchg ebx, ebx
jbe 0x10003d9d
je 0x10003dc1
mov bh, byte [eax + 0x84]
mov eax, 0x84
jmp 0x1000419b
jl 0x10003dd1
add byte [eax + 0x7d0b7790], dl
or dword [edi + 0x700074c0], eax
out dx, al
nop
nop
ja 0x10003dd1
jge 0x10003dd1
xchg eax, eax
je 0x10003dcc
jo 0x10003dbc
jno 0x10003dbc
sub dh, byte [ebx + 0xb]
jae 0x10003dde
je 0x10003ddc
xchg edx, edx
ja 0x10003ddc
xchg ecx, ecx
nop
jmp 0x10003de1
jae 0x10003dd3
sub bl, 7
jmp 0x10003dea
mov ebp, ebp
jg 0x10003ded
nop
jle 0x10003ded
jmp 0x10003de3
js 0x10003df8
nop
xchg ebx, ebx
jg 0x10003dfd
xchg ebx, ebx
jle 0x10003dfd
je 0x10003dfa
js 0x10003def
and eax, 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 0x10003e47
nop
nop
je 0x10003e45
xchg ecx, ecx
nop
jmp 0x10003e50
ja 0x10003e4b
xchg esi, esi
jbe 0x10003e3e
je 0x10003e62
xor edi, dword [edi + 9]
jg 0x10003e5b
nop
xchg edx, edx
js 0x10003e60
xchg ebp, ebp
jns 0x10003e60
ja 0x10003e5d
jg 0x10003e52
test ebx, ebp
pop es
jmp 0x10003e69
mov esi, esi
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
fstp xword [edi - 0x12]
mov edi, edi
nop
nop
je 0x10003e84
je 0x10003e84
xchg ebx, ebx
jg 0x10003e6f
jle 0x10003e6f
sbb edi, dword [eax + 0x1fe]
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 [edi + 0xd], dh
ja 0x10003ef2
nop
nop
je 0x10003eed
xchg edx, edx
ja 0x10003eed
jae 0x10003edd
jb 0x10003edd
sub byte [edx], ch
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 0x10003f16
mov ebx, ebx
nop
nop
jmp 0x10003f22
je 0x10003f1d
xchg edx, edx
ja 0x10003f1d
nop
jne 0x10003f10
xchg edx, edx
mov al, byte [0xc08b07eb]
jmp 0x10003f2b
mov eax, eax
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 ebp, ebp
nop
jmp 0x10003f88
jo 0x10003f7a
or bh, byte [ebx + 4]
jnp 0x10003f8e
mov ecx, ecx
jmp 0x10003f9c
nop
nop
ja 0x10003f97
xchg ebx, ebx
je 0x10003f97
nop
jnp 0x10003f8a
xchg esi, esi
mov word [ebx + 0xf00f07d], es
test byte [eax], ah
add dword [eax], eax
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 0x10003fce
mov ecx, ecx
nop
jmp 0x10003fdb
nop
nop
ja 0x10003fd6
xchg edx, edx
je 0x10003fd6
jnp 0x10003fc9
xchg ebp, ebp
xor dh, byte [ebx + 0xb]
jae 0x10003fe8
je 0x10003fe6
xchg ebx, ebx
ja 0x10003fe6
xchg edi, edi
nop
jmp 0x10003feb
jae 0x10003fdd
cmp bl, ch
pop es
jmp 0x10003ff4
mov edx, edx
jg 0x10003ff7
nop
jle 0x10003ff7
jmp 0x10003fed
jne 0x1000400a
je 0x1000400a
jbe 0x1000400f
xchg byte [edi], cl
add byte [eax], al
add byte [eax + 0x770b7490], dl
or dword [edi + 0x730077d2], eax
out dx, al
nop
nop
je 0x1000400f
ja 0x1000400f
xchg edx, edx
ja 0x1000400a
jae 0x10003ffa
jb 0x10003ffa
mov eax, dword [0x458d006a]
cld
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 esi, esi
jo 0x100040ea
nop
jno 0x100040ea
jmp 0x100040e0
jae 0x100040f7
je 0x100040f5
xchg esi, esi
ja 0x100040f5
xchg eax, eax
nop
jmp 0x100040fa
jae 0x100040ec
xor bh, byte [eax + 0x1fb]
mov eax, 0x1fb
jmp 0x1000419b
js 0x1000412f
nop
xchg ebx, ebx
jg 0x10004134
xchg ebp, ebp
jle 0x10004134
je 0x10004131
js 0x10004126
adc esi, dword [esi + 8]
jbe 0x1000413e
nop
nop
je 0x1000413c
xchg eax, eax
jmp 0x10004148
ja 0x10004143
xchg eax, eax
nop
jbe 0x10004136
je 0x1000415a
and dword [ebx + 0x452b1445], ecx
invalid
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 [eax - 0x78f48870], dl
idiv byte [ebp + 7]
nop
nop
ja 0x10004169
xchg esi, esi
jge 0x10004169
je 0x10004164
jo 0x10004154
jno 0x10004154
fucomi st(1)
inc esp
std
invalid
jmp 0x10003eb2
jae 0x1000417b
je 0x10004179
xchg ebp, ebp
ja 0x10004179
xchg edi, edi
nop
jmp 0x1000417e
jae 0x10004170
ror dword [ebx - 0x17ae17b3], cl
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