Function at 0x1000f4ab
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x1af0
push esi
mov esi, esp
call fcn.10011610
mov eax, dword [section..data]
xor eax, esi
mov dword [esi - 4], eax
and dword [esi - 0x1abc], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push ebp
xor ebp, ebp
mov dword [esi - 0x1ac8], eax
push edi
xor edi, edi
mov dword [esi - 0x1ad0], ecx
mov dword [esi - 0x1ac0], ebp
cmp dword [esi + 0x10], ebp
jne 0x1000f4f3
xor eax, eax
jmp 0x1000fd00
or ecx, ecx
jne 0x1000f516
call fcn.1000a62f
and dword [eax], ebp
call fcn.1000a663
mov dword [eax], 0x16
call fcn.100097c1
or eax, 0xffffffff
jmp 0x1000fd00
mov ecx, eax
mov edx, eax
sar edx, 5
and ecx, 0x1f
mov dword [esi - 0x1ad8], edx
push ebx
shl ecx, 6
mov edx, dword [edx*4 + 0x1001f738]
mov dword [esi - 0x1adc], ecx
mov bl, byte [ecx + edx + 0x24]
add bl, bl
sar bl, 1
cmp bl, 2
je 0x1000f549
cmp bl, 1
jne 0x1000f574
mov eax, dword [esi + 0x10]
not eax
test al, 1
jne 0x1000f56e
call fcn.1000a62f
and dword [eax], ebp
call fcn.1000a663
mov dword [eax], 0x16
call fcn.100097c1
jmp 0x1000fcf6
mov eax, dword [esi - 0x1ac8]
test byte [ecx + edx + 4], 0x20
je 0x1000f58a
push 2
push 0
push 0
push eax
call fcn.1000fe0c
add esp, 0x10
push dword [esi - 0x1ac8]
call fcn.1000f368
test eax, eax
pop ecx
je 0x1000f8ee
mov ecx, dword [esi - 0x1adc]
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
test byte [ecx + eax + 4], 0x80
je 0x1000f8ee
call fcn.1000a462
xor ecx, ecx
mov eax, dword [eax + 0x6c]
cmp dword [eax + 0xa8], ecx
lea eax, [esi - 0x1ae8]
push eax
mov eax, dword [esi - 0x1ad8]
sete cl
mov dword [esi - 0x1ac4], ecx
mov ecx, dword [esi - 0x1adc]
mov eax, dword [eax*4 + 0x1001f738]
push dword [ecx + eax]
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
test eax, eax
je 0x1000f8ee
cmp dword [esi - 0x1ac4], ebp
je 0x1000f610
or bl, bl
je 0x1000f8ee
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
xor ecx, ecx
mov edx, dword [esi - 0x1ad0]
and dword [esi - 0x1ac8], ecx
mov dword [esi - 0x1af0], eax
mov dword [esi - 0x1acc], ecx
mov dword [esi - 0x1ad4], edx
cmp dword [esi + 0x10], ecx
jbe 0x1000fcc0
mov eax, dword [esi - 0x1ad4]
xor edx, edx
mov dword [esi - 0x1ac0], edx
mov dword [esi - 0x1aec], 0xa
and dword [esi - 0x1ac4], edi
or bl, bl
jne 0x1000f813
mov dl, byte [eax]
xor eax, eax
mov ecx, dword [esi - 0x1adc]
cmp dl, 0xa
sete al
mov dword [esi - 0x1ae8], eax
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
mov dword [esi - 0x1ac4], eax
cmp dword [ecx + eax + 0x38], edi
je 0x1000f6b0
mov al, byte [ecx + eax + 0x34]
mov byte [esi - 0xc], al
mov eax, dword [esi - 0x1ac4]
mov byte [esi - 0xb], dl
push 2
and dword [ecx + eax + 0x38], edi
lea eax, [esi - 0xc]
push eax
jmp 0x1000f70a
movsx eax, dl
push eax
call fcn.1000feff
test eax, eax
pop ecx
je 0x1000f702
mov edx, dword [esi - 0x1ad4]
mov eax, dword [esi - 0x1ad0]
sub eax, edx
add eax, dword [esi + 0x10]
cmp eax, 1
jbe 0x1000f8b3
push 2
lea eax, [esi - 0x1acc]
push edx
push eax
call fcn.100101a0
add esp, 0xc
cmp eax, 0xffffffff
je 0x1000f9f8
mov eax, dword [esi - 0x1ad4]
inc eax
inc dword [esi - 0x1ac0]
jmp 0x1000f728
push 1
push dword [esi - 0x1ad4]
lea eax, [esi - 0x1acc]
push eax
call fcn.100101a0
add esp, 0xc
cmp eax, 0xffffffff
je 0x1000f9f8
mov eax, dword [esi - 0x1ad4]
xor ecx, ecx
inc eax
inc dword [esi - 0x1ac0]
push ecx
push ecx
push 5
mov dword [esi - 0x1ad4], eax
lea eax, [esi - 0xc]
push eax
push 1
lea eax, [esi - 0x1acc]
push eax
push ecx
push dword [esi - 0x1af0]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [esi - 0x1ac4], eax
or eax, eax
je 0x1000f9f8
lea ecx, [esi - 0x1ac8]
push 0
push ecx
mov ecx, dword [esi - 0x1adc]
push eax
lea eax, [esi - 0xc]
push eax
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
push dword [ecx + eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1000f8e1
mov ecx, dword [esi - 0x1abc]
mov eax, dword [esi - 0x1ac4]
mov ebp, dword [esi - 0x1ac0]
add ebp, ecx
cmp dword [esi - 0x1ac8], eax
jl 0x1000f9fe
cmp dword [esi - 0x1ae8], edi
je 0x1000f808
lea eax, [esi - 0x1ac8]
mov ecx, dword [esi - 0x1adc]
push 0
push eax
lea eax, [esi - 0xc]
push 1
mov byte [esi - 0xc], 0xd
push eax
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
push dword [ecx + eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1000f8e1
cmp dword [esi - 0x1ac8], 1
jl 0x1000f9f8
inc dword [esi - 0x1abc]
inc ebp
mov ecx, dword [esi - 0x1acc]
jmp 0x1000f899
cmp bl, 1
je 0x1000f81d
cmp bl, 2
jne 0x1000f850
xor edx, edx
movzx ecx, word [eax]
cmp cx, word [esi - 0x1aec]
mov dword [esi - 0x1acc], ecx
sete dl
sub eax, 0xfffffffe
mov dword [esi - 0x1ac4], edx
mov edx, dword [esi - 0x1ac0]
add edx, 2
mov dword [esi - 0x1ad4], eax
mov dword [esi - 0x1ac0], edx
cmp bl, 1
je 0x1000f85a
cmp bl, 2
jne 0x1000f8a5
push ecx
call fcn.100115cd
pop ecx
mov ecx, dword [esi - 0x1acc]
cmp ax, cx
jne 0x1000f8e1
add ebp, 2
cmp dword [esi - 0x1ac4], edi
je 0x1000f899
push 0xd
pop eax
push eax
mov dword [esi - 0x1acc], eax
call fcn.100115cd
pop ecx
mov ecx, dword [esi - 0x1acc]
cmp ax, cx
jne 0x1000f8e1
inc ebp
inc dword [esi - 0x1abc]
mov edx, dword [esi - 0x1ac0]
mov eax, dword [esi - 0x1ad4]
cmp edx, dword [esi + 0x10]
jb 0x1000f657
jmp 0x1000f9f8
inc ebp
mov al, byte [edx]
mov edx, dword [esi - 0x1adc]
mov ebx, dword [esi - 0x1ad8]
mov ecx, dword [ebx*4 + 0x1001f738]
mov byte [edx + ecx + 0x34], al
mov eax, dword [ebx*4 + 0x1001f738]
mov dword [edx + eax + 0x38], 1
jmp 0x1000f9f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1000f9f8
mov eax, dword [esi - 0x1ad8]
mov ecx, dword [eax*4 + 0x1001f738]
mov eax, dword [esi - 0x1adc]
test byte [eax + ecx + 4], 0x80
je 0x1000fc81
xor eax, eax
or bl, bl
mov edx, dword [esi - 0x1ad0]
mov dword [esi - 0x1acc], eax
jne 0x1000fa30
mov ebx, dword [esi + 0x10]
test ebx, ebx
mov dword [esi - 0x1ac8], edx
je 0x1000fcc0
lea edi, [esi - 0x140c]
xor ecx, ecx
mov dword [esi - 0x1ac4], ecx
mov eax, edx
sub eax, dword [esi - 0x1ad0]
cmp eax, ebx
jae 0x1000f991
mov cl, byte [edx]
mov byte [esi - 0x1ae1], cl
inc edx
mov dword [esi - 0x1ac8], edx
inc eax
cmp cl, 0xa
mov ecx, dword [esi - 0x1ac4]
jne 0x1000f973
inc dword [esi - 0x1abc]
mov byte [edi], 0xd
inc edi
inc ecx
mov dl, byte [esi - 0x1ae1]
mov byte [edi], dl
mov edx, dword [esi - 0x1ac8]
inc edi
inc ecx
cmp ecx, 0x13ff
mov dword [esi - 0x1ac4], ecx
jb 0x1000f949
mov ecx, dword [esi - 0x1adc]
lea eax, [esi - 0x140c]
push 0
sub edi, eax
lea eax, [esi - 0x1ae0]
push eax
lea eax, [esi - 0x140c]
push edi
push eax
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
push dword [ecx + eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1000f8e1
add ebp, dword [esi - 0x1ae0]
cmp dword [esi - 0x1ae0], edi
jl 0x1000f9f2
mov edx, dword [esi - 0x1ac8]
mov eax, edx
sub eax, dword [esi - 0x1ad0]
cmp eax, ebx
jb 0x1000f933
mov edi, dword [esi - 0x1acc]
mov ecx, dword [esi - 0x1abc]
or ebp, ebp
jne 0x1000fcfb
test edi, edi
je 0x1000fcba
push 5
pop ebx
cmp edi, ebx
jne 0x1000fcb1
call fcn.1000a663
mov dword [eax], 9
call fcn.1000a62f
mov dword [eax], ebx
jmp 0x1000fcf6
mov ecx, edx
cmp bl, 2
jne 0x1000fb25
cmp dword [esi + 0x10], ebp
jbe 0x1000fcc0
mov dword [esi - 0x1aec], 0xa
and dword [esi - 0x1ae8], 0
mov edi, ecx
push 0xd
sub edi, edx
mov edx, dword [esi - 0x1ae8]
lea ebx, [esi - 0x140c]
pop eax
cmp edi, dword [esi + 0x10]
jae 0x1000faa0
sub edi, 0xfffffffe
movzx ebp, word [ecx]
add ecx, 2
cmp bp, word [esi - 0x1aec]
jne 0x1000fa8f
sub dword [esi - 0x1abc], 0xfffffffe
mov word [ebx], ax
sub ebx, 0xfffffffe
sub edx, 0xfffffffe
add edx, 2
mov word [ebx], bp
sub ebx, 0xfffffffe
cmp edx, 0x13fe
jb 0x1000fa68
mov dword [esi - 0x1ac4], ecx
mov ecx, dword [esi - 0x1adc]
lea edi, [esi - 0x140c]
sub ebx, edi
lea edi, [esi - 0x1ae0]
push 0
push edi
push ebx
lea edi, [esi - 0x140c]
push edi
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
push dword [ecx + eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, dword [esi - 0x1acc]
or eax, eax
mov ebp, dword [esi - 0x1ac0]
je 0x1000f8e1
add ebp, dword [esi - 0x1ae0]
mov dword [esi - 0x1ac0], ebp
cmp dword [esi - 0x1ae0], ebx
jl 0x1000f9f8
mov edx, dword [esi - 0x1ad0]
mov ecx, dword [esi - 0x1ac4]
mov eax, ecx
sub eax, edx
cmp eax, dword [esi + 0x10]
jb 0x1000fa4e
jmp 0x1000f9f8
mov ebx, dword [esi + 0x10]
test ebx, ebx
mov dword [esi - 0x1ac8], ecx
je 0x1000fcc0
mov dword [esi - 0x1aec], 0xa
lea eax, [esi - 0x1ab8]
and dword [esi - 0x1ae8], 0
sub ecx, edx
mov ebp, dword [esi - 0x1ae8]
mov edi, dword [esi - 0x1ac8]
cmp ecx, ebx
jae 0x1000fb9a
add ecx, 2
movzx edx, word [edi]
add edi, 2
mov dword [esi - 0x1ac8], edi
cmp dx, word [esi - 0x1aec]
jne 0x1000fb89
push 0xd
pop edi
mov word [eax], di
mov edi, dword [esi - 0x1ac8]
sub eax, 0xfffffffe
add ebp, 2
sub ebp, 0xfffffffe
mov word [eax], dx
add eax, 2
cmp ebp, 0x6a8
jb 0x1000fb5b
xor ebp, ebp
push ebp
lea ecx, [esi - 0x1ab8]
push ebp
sub eax, ecx
push 0xd55
lea edx, [esi - 0xd64]
push edx
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, ecx
push eax
push ebp
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebp, dword [esi - 0x1ac0]
mov edi, dword [esi - 0x1acc]
mov dword [esi - 0x1ac4], eax
test eax, eax
je 0x1000f8e1
xor ecx, ecx
mov dword [esi - 0x1ac0], ecx
sub eax, ecx
lea edx, [esi - 0x1ae0]
push 0
push edx
push eax
lea eax, [esi - 0xd64]
add eax, ecx
mov ecx, dword [esi - 0x1adc]
push eax
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
push dword [ecx + eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1000fc3c
mov eax, dword [esi - 0x1ac4]
mov ecx, dword [esi - 0x1ac0]
add ecx, dword [esi - 0x1ae0]
mov dword [esi - 0x1ac0], ecx
cmp eax, ecx
jg 0x1000fbe9
jmp 0x1000fc56
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [esi - 0x1ac4]
mov ecx, dword [esi - 0x1ac0]
mov dword [esi - 0x1acc], edi
cmp eax, ecx
jg 0x1000f9f8
mov edx, dword [esi - 0x1ad0]
mov ecx, dword [esi - 0x1ac8]
mov ebp, ecx
sub ebp, edx
cmp ebp, ebx
mov dword [esi - 0x1ac0], ebp
jb 0x1000fb40
jmp 0x1000f9f8
lea edx, [esi - 0x1ae0]
push 0
push edx
push dword [esi + 0x10]
push dword [esi - 0x1ad0]
push dword [eax + ecx]
call dword [sym.imp.KERNEL32.dll_WriteFile]
or eax, eax
je 0x1000f8e1
xor edi, edi
mov ebp, dword [esi - 0x1ae0]
jmp 0x1000f9f8
push edi
call fcn.1000a642
pop edi
jmp 0x1000fcf6
mov edx, dword [esi - 0x1ad0]
mov ecx, dword [esi - 0x1adc]
mov eax, dword [esi - 0x1ad8]
mov eax, dword [eax*4 + 0x1001f738]
test byte [ecx + eax + 4], 0x40
je 0x1000fce3
cmp byte [edx], 0x1a
jne 0x1000fce3
xor eax, eax
jmp 0x1000fcff
call fcn.1000a663
mov dword [eax], 0x1c
call fcn.1000a62f
and dword [eax], 0
or eax, 0xffffffff
jmp 0x1000fcff
sub ebp, ecx
mov eax, ebp
pop ebx
mov ecx, dword [esi - 4]
xor ecx, esi
pop edi
pop ebp
call fcn.10006e5b
mov esp, esi
pop esi
ret