Function at 0x40b080
Capabilities:
Write file on windows

Disassembly:
mov esi, dword [edi + 0xde85058]
invalid
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp - 0x62]
cld
inc esi
adc byte [ebx - 0x3ef4ebb2], cl
mov dword [ebp + 0x5f], 0
jne 0x40b02a
mov al, byte [esi + 8]
test bl, ah
je 0x40b10d
mov edx, dword [esi + 4]
lea ebp, [ebp + 1]
push 0
push ecx
ja 0x40b0ae
push 0
push 0xffffffffffffffaf
mov eax, 0xc00c15bb
inc eax
add byte [ebp - 0x74ca8a40], al
xor eax, sym.imp.KERNEL32.dll_GetLastError
outsd dx, dword [esi]
salc
mov eax, 0x15096fc0
dec ebp
adc al, 0x5f
pop esi
mov dword [ecx + 0x5d], esi
ret
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40b137
mov al, cl
or byte [ecx + ecx*8 + 0x4e8b7175], al
push eax
mov dword [eax + 8], ecx
inc ecx
je 0x40b174
mov ecx, dword [ecx + eax*2 + 0x9908]
add byte [ebx - 0x56ffd51f], dh
mov edx, dword [esi - 0x19]
sbb ecx, dword ss:[ebx + ecx*4]
mov al, 0xc
mov edx, dword [ebp + 0xc]
mov esi, dword [eax + 0xc558b0c]
push ebx
lea ecx, [ebp + 0x10]
push eax
mov eax, dword [edi]
pop es
add al, 0xfa
push edi
push edx
push eax
call dword [ebx + 0x10]
sal byte [ebx + 0x74c08500], 7
xor eax, eax
jmp 0x40b285
sub eax, dword [ecx]
add byte [eax], al
mov edi, dword [0x1d40c098]
call edi
test dword [edi], esi
je 0x40b285
je 0x40b143
add eax, 0xafc95
cmp eax, 0xb8665
or eax, dword [eax]
jne 0x40b24f
mov ebx, dword [0x42545b9c]
mov ebp, esp
adc al, 0x8b
inc esi
adc byte [ebp + 0x7ff17ca3], al
add al, 0x85
sal byte [esi + 0x10], 0x6a
add byte [esi + edx*8 - 0x30fffffd], cl
push eax
call 0x41ac90
jmp 0x40b1af
or eax, eax
jmp 0x40b1af
mov ecx, dword [esi + 0xc]
push eax
jnp 0x40b206
adc byte [edx - 1], dl
clc
mov edi, eax
cmp edi, 0xe9000080
je 0x40b156
outsb dx, byte [esi]
push dword [ecx + esi - 0x5f]
xchg esp, eax
or dword [ecx], eax
mov ebx, dword [eax + 4]
test eax, eax
jne 0x40b1eb
push eax
push 0x9c410057
push eax
call fcn.00407c02
add esp, 0xc
mov dword [0x160960], eax
jle 0x40b1a9
je 0x40b1f0
stc
call eax
jmp 0x40b1f8
push 0xffffffffffffff9b
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, dword [ecx + 0x4568b97]
sub eax, 0x16a10e6
push eax
push ecx
call dword gs:[0x79c0b4]
call dword [0x79c0b4]
test dword [esp + esi*2], esp
add al, 0x33
shr bl, 0x71
mov esp, ebx
cwde
rol byte [eax], 0xff
rol dword [ebp - 0x9a8b40], cl
rol dword [0xafc7c], cl
and al, 0x64
add byte [eax], cl
push eax
enter 0x3d07, 0x63
add byte [ebx], cl
add byte [ebp + 0x1a], dh
cmp eax, 0xb0063
jne 0x40b24f
cmp edi, 0x40102
jne 0x40b24f
mov ecx, dword [ebp + 0x6a]
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
mov eax, 0x11177
push ebx
and eax, 0x66005d5e
cmp esp, 0xa
cmp sp, 0xa
add byte [ebp + 0x12], dh
mov edx, dword [esi + 0x10558b14]
pop ebx
mov cl, 0xb8
jle 0x40b22e
fstp xword [ecx - 0x1a]
cmp eax, 0x3dc35d5e
cmpsb byte [esi], byte es:[edi]
cld
or al, byte [eax]
and al, 0x79
mov ebp, ebx
dec ecx
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
mov eax, 0x981134
add byte [ecx], dl
pop esi
pop ebp
jp 0x40b2e1
sal byte [ebp + 0x38], 0x8b
dec ebp
adc byte [ebp - 0x74ed8a1e], al
dec ebp
adc al, 0xb3
push ebp
mov ecx, dword [ebp + 0x10]
test edx, esp
jne 0x40b29e
mov ecx, dword [ebp + 0x14]
mov bl, 0x55
adc byte [ebx + 0x5f], bl
pop eax
jle 0x40b2a8
add dword [edx - 0x51a1a277], eax
ret
mov edx, dword [esi - 0x1a]
test edx, edx
sahf
sbb ch, ah
push esi
or byte [edx + edx*8 + 0x568b1175], al
push eax
test dl, dl
jne 0x40b2bd
mov edx, dword [esi + 0x50]
add edx, ecx
mov ecx, dword [edx + 0x36038354]
mov dword [esi + 0x50], edx
dec esi
push esp
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
inc edx
pop edi
fild word [esi + 0x5e]
int 0xc3
nop
sbb eax, 0x90909090
sbb dword [ebx - 0x68a95014], ecx
jne 0x40b2e0
mov dh, bh
sub al, 0x84
ror byte [edi], 0x84
mov esi, 0xf5000000
add byte [eax], al
add ch, dh
add byte [eax], al
cmc
dec esi
dec eax
xor eax, eax
push es
cmp ecx, 1
push edi
mov dword [ebp - 4], eax
mov dword [ebp + 8], eax
jne 0xf7b395
cmp edi, dword [esi + 0x3c]
cmp edi, eax
vmread dword [ecx - 0x75000000], edx
pop esi
cmp byte [ebx], ch
inc esp
jbe 0x40b311
sub edi, edi
les esi, [esi + 5]
xor dword [ebx], 0xffffffff
jmp 0x40b313
mov eax, edi
cmp dword [esi + 4], edx
lea ecx, [ebp - 4]
push 0
adc dword [eax + 0x53], edx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40b358
rol byte [eax], 0x85
sal byte [edi + ebp - 0x75], 0x45
cld
mov eax, dword [ebp - 4]
mov esi, dword [ebx]
push eax
mov ecx, dword [esi + 0x54]
add edx, eax
adc ecx, 0
sub edi, eax
add ebx, eax
mov dword [ecx + 0x62ff8550], esp
dec esi
push esp
ja 0x40b307
mov eax, dword [ebp - 0x4c]
pop edi
mov dword [esi + 0x3c], 0xcb
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 0x19
mov ebp, dword [eax + ebx*4 - 0x40]
inc eax
loope 0x40b35e
call edi
xlatb
jb 0x40b322
sub al, byte [0xeb3e4589]
or bh, bh
xlatb
add eax, 0xdc0afc80
mov eax, 0x451c0845
leave
mov edx, dword [esi + 0x50]
mov ebx, esi
cmc
add edx, eax
mov eax, dword [ebp + 0x34]
mov dword [esi + 0x50], edx
sub dword [esi - 0x763fad00], 0x69
push esp
mov dh, 7
invalid