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
jl 0x10003da4
nop
nop
ja 0x10003da2
nop
jmp 0x10003daf
xchg edx, edx
je 0x10003daa
xchg eax, eax
jl 0x10003d9d
ja 0x10003dc1
mov dword [eax + 0x84], edi
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
add esi, dword [ebx + 0xb]
jae 0x10003dde
je 0x10003ddc
xchg esi, esi
ja 0x10003ddc
xchg eax, eax
nop
jmp 0x10003de1
jae 0x10003dd3
arpl bx, bp
pop es
jmp 0x10003dea
mov esi, esi
jg 0x10003ded
nop
jle 0x10003ded
jmp 0x10003de3
js 0x10003df8
nop
xchg edx, edx
jg 0x10003dfd
xchg eax, eax
jle 0x10003dfd
je 0x10003dfa
js 0x10003def
xor byte [edx], ch
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 0x10003e46
nop
nop
je 0x10003e44
xchg eax, eax
jmp 0x10003e50
ja 0x10003e4b
xchg eax, eax
nop
jbe 0x10003e3e
je 0x10003e62
mov byte [edi + 9], bh
jg 0x10003e5b
nop
xchg ebp, ebp
js 0x10003e60
xchg eax, eax
jns 0x10003e60
ja 0x10003e5d
jg 0x10003e52
adc bl, ch
pop es
jmp 0x10003e69
mov esi, esi
jo 0x10003e6c
nop
jno 0x10003e6c
jmp 0x10003e62
jbe 0x10003e7f
ja 0x10003e7f
jnp 0x10003e84
mov ecx, dword [edi]
add byte [eax], al
add byte [edx + 0xd], bh
jp 0x10003e84
mov edi, edi
nop
nop
ja 0x10003e7f
xchg esi, esi
js 0x10003e6f
jns 0x10003e6f
fidivr 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
jnp 0x10003eed
jp 0x10003eed
jl 0x10003ef2
mov word [edi], cs
add byte [eax], al
add byte [eax - 0x78f48870], dl
invalid
nop
nop
ja 0x10003ef2
xchg ebx, ebx
je 0x10003ef2
jge 0x10003ef2
jo 0x10003edd
jno 0x10003edd
add 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
jnp 0x10003f16
mov edi, edi
nop
nop
jmp 0x10003f22
ja 0x10003f1d
xchg ebx, ebx
je 0x10003f1d
nop
jnp 0x10003f10
xchg edi, edi
cmp bl, ch
pop es
jmp 0x10003f2b
mov ecx, ecx
js 0x10003f2e
nop
jns 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
jae 0x10003f85
je 0x10003f83
xchg edx, edx
ja 0x10003f83
xchg ebp, ebp
nop
jmp 0x10003f88
jae 0x10003f7a
fidiv word [ebp + 0xa]
jne 0x10003f94
mov edi, edi
nop
nop
je 0x10003f92
xchg ebp, ebp
jmp 0x10003f9c
ja 0x10003f97
nop
jne 0x10003f8a
xchg ebx, ebx
xor eax, 0xf07d83
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
jne 0x10003fd0
mov ecx, ecx
nop
nop
nop
jmp 0x10003fdb
je 0x10003fd6
xchg ebx, ebx
ja 0x10003fd6
jne 0x10003fc9
xchg ecx, ecx
mov byte [0x7770b70], al
jo 0x10003fe8
ja 0x10003fe6
xchg eax, eax
je 0x10003fe6
xchg edi, edi
nop
jmp 0x10003feb
jo 0x10003fdd
mov ebp, ebx
pop es
jmp 0x10003ff4
mov edi, edi
js 0x10003ff7
nop
jns 0x10003ff7
jmp 0x10003fed
jne 0x1000400a
je 0x1000400a
jbe 0x1000400f
xchg byte [edi], cl
add byte [eax], al
add byte [edi + 0xd], dh
ja 0x1000400f
nop
nop
je 0x1000400a
xchg eax, eax
ja 0x1000400a
jae 0x10003ffa
jb 0x10003ffa
sub dword [edx], ebp
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 ebx, ebx
jae 0x100040ea
nop
jb 0x100040ea
jmp 0x100040e0
jo 0x100040f7
ja 0x100040f5
xchg edx, edx
je 0x100040f5
xchg edx, edx
nop
jmp 0x100040fa
jo 0x100040ec
or dword [eax + 0x1fb], edi
mov eax, 0x1fb
jmp 0x1000419b
jg 0x1000412f
nop
xchg esi, esi
js 0x10004134
xchg eax, eax
jns 0x10004134
ja 0x10004131
jg 0x10004126
invalid
jl 0x1000413d
nop
nop
ja 0x1000413b
nop
jmp 0x10004148
xchg edi, edi
je 0x10004143
xchg ebx, ebx
jl 0x10004136
ja 0x1000415a
adc byte [ebx + 0x452b1445], cl
invalid
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
jne 0x10004164
je 0x10004164
jbe 0x10004169
xchg byte [edi], cl
add byte [eax], al
add byte [eax + 0x770b7490], dl
or dword [edi + 0x730077f6], eax
out dx, al
nop
nop
je 0x10004169
ja 0x10004169
xchg esi, esi
ja 0x10004164
jae 0x10004154
jb 0x10004154
fucomi st(1)
inc esp
std
invalid
jmp 0x10003eb2
jo 0x1000417b
ja 0x10004179
xchg eax, eax
je 0x10004179
xchg ebx, ebx
nop
jmp 0x1000417e
jo 0x10004170
mov word [ebx - 0x17ae17b3], cs
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