Function at 0x402890
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
movzx eax, dl
add eax, 0xfffffff0
push esi
mov esi, ecx
push edi
cmp eax, 0x91
ja case.0x4028b2.20
movzx eax, byte [eax + 0x402d10]
jmp dword [eax*4 + 0x402cc8]
push ecx
push 0x11
push str.Not_implemented__n
mov dl, 0x50
call fcn.00402020
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ecx
push 1
push 0x416834
mov dl, 0x51
call fcn.00402020
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.004036f0
test eax, eax
je case.0x4028b2.19
mov dword [0x41a150], 1
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.00403ac0
test eax, eax
je case.0x4028b2.19
mov dword [0x41a150], 0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
call fcn.004033b0
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x41a334]
push 0
push 1
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
push 0
push 0x80
push 1
mov eax, dword [ecx]
push 0
push 0
mov dword [0x41a330], eax
lea eax, [ecx + 4]
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x41a32c], eax
push ecx
mov ecx, esi
push 0
push 0
cmp eax, 0xffffffff
jne 0x4029c2
mov dl, 0x42
mov dword [0x41a32c], 0
mov dword [0x41a330], 0
call fcn.00402020
add esp, 0xc
cmp eax, 5
je case.0x4028b2.19
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dl, 0x40
mov dword [0x41a328], 0
call fcn.00402020
add esp, 0xc
cmp eax, 5
je case.0x4028b2.19
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x41a32c]
test eax, eax
jne 0x402a10
push ecx
push eax
push eax
mov dl, 0x44
call fcn.00402020
add esp, 0xc
cmp eax, 5
je case.0x4028b2.19
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 4]
push 0
push ecx
push edi
push dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x402a4b
mov dl, 0x44
push ecx
push 0
push 0
mov ecx, esi
call fcn.00402020
add esp, 0xc
cmp eax, 5
je case.0x4028b2.19
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 4], edi
je 0x402a6a
push ecx
push 0
push 0
mov dl, 0x44
mov ecx, esi
call fcn.00402020
add esp, 0xc
cmp eax, 5
jne 0x4029b9
mov eax, dword [0x41a328]
add eax, edi
mov dword [0x41a328], eax
cmp eax, dword [0x41a330]
jne 0x402aaf
push dword [0x41a32c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x41a32c], 0
mov dl, 0x43
mov dword [0x41a330], 0
mov dword [0x41a328], 0
jmp 0x402a2a
mov dl, 0x40
jmp 0x402a2a
push dword [0x41a32c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
call fcn.00403c20
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
push ecx
call fcn.00403d90
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x41a324]
push 0
push 1
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x41a320]
test eax, eax
je 0x402bb4
cmp dword [eax + 8], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x402b65
mov dword [eax + 0x10], 1
mov eax, dword [0x41a320]
push 0
push 1
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x41a320]
push 0xffffffffffffffff
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x41a320]
push dword [eax + 8]
call edi
mov eax, dword [0x41a320]
mov dword [eax + 8], 0
mov eax, dword [0x41a320]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x402b86
push ecx
call fcn.00404e93
mov eax, dword [0x41a320]
add esp, 4
mov dword [eax + 4], 0
mov eax, dword [0x41a320]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x402ba1
push ecx
call edi
mov eax, dword [0x41a320]
mov dword [eax + 0xc], 0
mov eax, dword [0x41a320]
push eax
call fcn.00404e93
add esp, 4
mov dword [0x41a320], 0
mov ecx, esi
call fcn.00402db0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x41a320]
test eax, eax
je 0x402c6f
cmp dword [eax + 8], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x402c20
mov dword [eax + 0x10], 1
mov eax, dword [0x41a320]
push 0
push 1
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, dword [0x41a320]
push 0xffffffffffffffff
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x41a320]
push dword [eax + 8]
call edi
mov eax, dword [0x41a320]
mov dword [eax + 8], 0
mov eax, dword [0x41a320]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x402c41
push ecx
call fcn.00404e93
mov eax, dword [0x41a320]
add esp, 4
mov dword [eax + 4], 0
mov eax, dword [0x41a320]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x402c5c
push ecx
call edi
mov eax, dword [0x41a320]
mov dword [eax + 0xc], 0
mov eax, dword [0x41a320]
push eax
call fcn.00404e93
add esp, 4
mov dword [0x41a320], 0
push dword [ebp + 8]
mov ecx, esi
call fcn.004032a0
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x41a320]
test eax, eax
je case.0x4028b2.19
push 0
push 1
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
push ecx
push 0
push 0
mov dl, 0xa1
call fcn.00402020
add esp, 0xc
push 0
call fcn.0040535f
or byte [ebx], ch
inc eax
add bl, al
sub eax, dword [eax]
test byte [eax + eax*2], ch
add byte [edx - 637517780], ch
sub al, byte [eax]
out dx, al
sub al, byte [eax]
pop ebx
sub dword [eax], eax
call 0xb6406d12
sub al, byte [eax]
retf 0x402a