Function at 0x40ab80
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
sub esp, 0x2f0
mov eax, dword [0x45b8f8]
xor eax, esp
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x2f4]
push ebx
push ebp
push esi
push edi
push 0
push 0
push 0
push 0
push 0x100
mov esi, ecx
mov edi, edx
lea ecx, [esp + 0x20c]
push ecx
lea edx, [esp + 0x38]
push edx
push edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], eax
call dword [0x460fac]
test eax, eax
jne 0x40ae1d
push 0x2000
call fcn.0042c26b
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x40abf3
mov eax, 0xffffff98
jmp 0x40ae1d
cmp byte [esp + 0x1f8], 0
lea eax, [esp + 0x1f8]
je 0x40ac14
cmp byte [eax], 0x2f
jne 0x40ac0c
mov byte [eax], 0x5c
add eax, 1
cmp byte [eax], 0
jne 0x40ac04
push edi
xor ebp, ebp
call dword [0x460fb0]
lea edx, [esp + 0x70]
mov ebx, eax
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x40ac27
lea eax, [esp + 0x1f8]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40ac40
lea edi, [esp + 0x70]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x40ac52
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x1c]
cmp dword [esi], ebp
jne 0x40ad05
test ebx, ebx
jne 0x40ae03
lea eax, [esp + 0x70]
push 0x4500ac
push eax
call fcn.0042d698
add esp, 8
test eax, eax
je 0x40acd4
push eax
call fcn.0042d11e
add esp, 4
nop
lea ecx, [esp + 0x178]
push ecx
push 0x4500b0
call fcn.0042d53c
mov al, byte [esp + 0x180]
add esp, 8
cmp al, 0x61
jl 0x40acc6
cmp al, 0x7a
jg 0x40acc6
sub al, 0x20
cmp al, 0x59
je 0x40acd8
cmp al, 0x4e
je 0x40acdc
cmp al, 0x41
jne 0x40aca0
jmp 0x40acd8
mov al, byte [esp + 0x17]
cmp al, 0x4e
jne 0x40ace1
mov ebp, 1
cmp al, 0x41
jne 0x40aceb
mov dword [esi], 1
test ebp, ebp
je 0x40ad0d
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
push edx
call dword [0x460f9c]
mov ebx, eax
jmp 0x40ae12
test ebx, ebx
jne 0x40ae03
lea edx, [esp + 0x70]
push 0x4500b4
push edx
call fcn.0042d698
mov esi, eax
add esp, 8
test esi, esi
jne 0x40ad70
mov al, byte [esp + 0x70]
test al, al
lea ecx, [esp + 0x70]
je 0x40ad46
cmp al, 0x2f
je 0x40ad39
cmp al, 0x5c
jne 0x40ad3c
lea esi, [ecx + 1]
mov al, byte [ecx + 1]
add ecx, 1
test al, al
jne 0x40ad31
mov bl, byte [esi]
lea edi, [esp + 0x70]
mov byte [esi], 0
call fcn.0040aab0
mov eax, edi
push 0x4500b4
push eax
mov byte [esi], bl
call fcn.0042d698
mov esi, eax
add esp, 8
test esi, esi
je 0x40acef
lea esp, [esp]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push 0x2000
push edi
push ecx
call dword [0x460f98]
mov ebx, eax
test ebx, ebx
jle 0x40ada0
push esi
push 1
push ebx
push edi
call fcn.0042d80a
add esp, 0x10
cmp eax, 1
je 0x40ad70
or ebx, 0xffffffff
push esi
call fcn.0042d11e
add esp, 4
test ebx, ebx
jne 0x40ae07
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
sub esp, 0x18
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x84]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x88]
call fcn.0040aa30
mov edx, dword [esp + 0x30]
add esp, 0x18
push edx
call dword [0x460f9c]
mov ebx, eax
jmp 0x40ae12
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
push eax
call dword [0x460f9c]
push edi
call fcn.0042d01e
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x2fc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042bfb5
add esp, 0x2f0
ret