Function at 0x1000802e
Capabilities:
Query environment variable
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xca8
push ebx
push esi
push edi
mov dword [ebp - 0xca4], 1
push 0
push 2
push 3
push 0
push 3
push 0xc0000000
mov eax, 0x10012010
add eax, 0x80
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xc28], eax
cmp dword [ebp - 0xc28], 0xffffffff
jne 0x1000816b
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0xc28], eax
push 0x400
lea eax, [ebp - 0x414]
push eax
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0xc2c], 0
jmp 0x100080b0
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 0x400
jge 0x100080d2
mov eax, dword [ebp - 0xc2c]
movsx eax, byte [eax + ebp - 0x414]
test eax, eax
jne 0x100080d0
jmp 0x100080d2
jmp 0x100080aa
jmp 0x100080da
dec dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 0
jle 0x100080fa
mov eax, dword [ebp - 0xc2c]
movsx eax, byte [eax + ebp - 0x414]
cmp eax, 0x5c
jne 0x100080f8
jmp 0x100080fa
jmp 0x100080d4
cmp dword [ebp - 0xc2c], 0
je 0x10008161
mov eax, dword [ebp - 0xc2c]
mov byte [eax + ebp - 0x413], 0
mov eax, 0x10012010
add eax, 0x80
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0xc90]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
push 2
push 3
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0xc90]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xc28], eax
jmp 0x1000816b
mov dword [ebp - 0xc28], 0xffffffff
push 0x400
lea eax, [ebp - 0x414]
push eax
push 0x10012b54
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov dword [ebp - 0xc24], 0
mov dword [ebp - 0xc2c], 0
cmp dword [ebp - 0xc28], 0xffffffff
jne 0x100082f1
cmp dword [ebp - 0xca4], 0
jne 0x100081b3
xor eax, eax
jmp 0x1000883b
jmp 0x100081bb
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 0x400
jge 0x100081f0
mov eax, dword [ebp - 0xc2c]
movsx eax, byte [eax + ebp - 0x414]
test eax, eax
je 0x100081f0
mov eax, dword [ebp - 0xc2c]
movsx eax, byte [eax + ebp - 0x414]
cmp eax, 0x3b
jne 0x100081ee
jmp 0x100081f0
jmp 0x100081b5
mov eax, dword [ebp - 0xc2c]
movsx eax, byte [eax + ebp - 0x414]
test eax, eax
jne 0x1000820c
mov dword [ebp - 0xca4], 0
cmp dword [ebp - 0xc2c], 0x400
jne 0x1000821f
xor eax, eax
jmp 0x1000883b
mov eax, dword [ebp - 0xc2c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc94], 0
jmp 0x1000823a
inc dword [ebp - 0xc94]
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0xc24]
cmp eax, dword [ebp - 0xc94]
jle 0x1000826d
mov eax, dword [ebp - 0xc94]
add eax, dword [ebp - 0xc24]
mov al, byte [eax + ebp - 0x414]
mov ecx, dword [ebp - 0xc94]
mov byte [ecx + ebp - 0xc90], al
jmp 0x10008234
mov eax, dword [ebp - 0xc94]
movsx eax, byte [eax + ebp - 0xc91]
cmp eax, 0x5c
je 0x10008294
mov eax, dword [ebp - 0xc94]
mov byte [eax + ebp - 0xc90], 0x5c
inc dword [ebp - 0xc94]
mov eax, dword [ebp - 0xc94]
mov byte [eax + ebp - 0xc90], 0
mov eax, 0x10012010
add eax, 0x80
push eax
lea eax, [ebp - 0xc90]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
push 2
push 3
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0xc90]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xc28], eax
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0xc24], eax
inc dword [ebp - 0xc2c]
jmp 0x10008196
push 0
lea eax, [ebp - 0xc9c]
push eax
push 4
lea eax, [ebp - 0xc20]
push eax
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x100122c6]
mov dword [ebp - 0xc98], eax
mov eax, dword [0x1001208c]
mov dword [0x100122c6], eax
mov dword [ebp - 0xc2c], 0
cmp dword [ebp - 0xc2c], 4
jge 0x100083ab
call fcn.10009a71
movzx eax, ax
cdq
xor eax, edx
sub eax, edx
and eax, 3
xor eax, edx
sub eax, edx
mov byte [ebp - 8], al
mov dword [ebp - 0xc94], 0
jmp 0x10008361
inc dword [ebp - 0xc94]
mov eax, dword [ebp - 0xc2c]
cmp dword [ebp - 0xc94], eax
jge 0x10008388
mov eax, dword [ebp - 0xc94]
xor ecx, ecx
mov cl, byte [eax + ebp - 0xc]
xor eax, eax
mov al, byte [ebp - 8]
cmp ecx, eax
jne 0x10008386
jmp 0x10008388
jmp 0x1000835b
mov eax, dword [ebp - 0xc2c]
cmp dword [ebp - 0xc94], eax
jne 0x100083a9
mov al, byte [ebp - 8]
mov ecx, dword [ebp - 0xc2c]
mov byte [ecx + ebp - 0xc], al
inc dword [ebp - 0xc2c]
jmp 0x1000832f
mov al, byte [ebp - 0xb]
xor ecx, ecx
mov cl, byte [ebp - 0xc]
mov byte [ecx + ebp - 4], al
mov al, byte [ebp - 0xa]
xor ecx, ecx
mov cl, byte [ebp - 0xb]
mov byte [ecx + ebp - 4], al
mov al, byte [ebp - 9]
xor ecx, ecx
mov cl, byte [ebp - 0xa]
mov byte [ecx + ebp - 4], al
mov al, byte [ebp - 0xc]
xor ecx, ecx
mov cl, byte [ebp - 9]
mov byte [ecx + ebp - 4], al
mov dword [ebp - 0xc2c], 0
jmp 0x100083ed
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 4
jge 0x1000840e
mov al, byte [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc2c]
xor edx, edx
mov dl, byte [ecx + ebp - 4]
mov byte [edx + ebp - 0x10], al
jmp 0x100083e7
mov dword [ebp - 0xca8], 0
jmp 0x10008420
inc dword [ebp - 0xca8]
cmp dword [ebp - 0xca8], 4
jge 0x10008530
mov dword [ebp - 0xc2c], 0
cmp dword [ebp - 0xc2c], 0x100
jge 0x100084d9
call fcn.10009a71
movzx eax, ax
cdq
xor eax, edx
sub eax, edx
and eax, 0xff
xor eax, edx
sub eax, edx
mov byte [ebp - 8], al
mov dword [ebp - 0xc94], 0
jmp 0x10008472
inc dword [ebp - 0xc94]
mov eax, dword [ebp - 0xc2c]
cmp dword [ebp - 0xc94], eax
jge 0x100084a5
mov eax, dword [ebp - 0xca8]
shl eax, 8
add eax, dword [ebp - 0xc94]
xor ecx, ecx
mov cl, byte [eax + ebp - 0xc14]
xor eax, eax
mov al, byte [ebp - 8]
cmp ecx, eax
jne 0x100084a3
jmp 0x100084a5
jmp 0x1000846c
mov eax, dword [ebp - 0xc2c]
cmp dword [ebp - 0xc94], eax
jne 0x100084d4
mov al, byte [ebp - 8]
mov ecx, dword [ebp - 0xc2c]
mov edx, dword [ebp - 0xca8]
shl edx, 8
add ecx, edx
mov byte [ecx + ebp - 0xc14], al
inc dword [ebp - 0xc2c]
jmp 0x10008437
mov dword [ebp - 0xc2c], 0
jmp 0x100084eb
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 0x100
jge 0x1000852b
mov al, byte [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc2c]
mov edx, dword [ebp - 0xca8]
shl edx, 8
add ecx, edx
xor edx, edx
mov dl, byte [ecx + ebp - 0xc14]
mov ecx, dword [ebp - 0xca8]
shl ecx, 8
add edx, ecx
mov byte [edx + ebp - 0x814], al
jmp 0x100084e5
jmp 0x1000841a
push 0
push 0
push 0x10
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0xc9c]
push eax
push 4
lea eax, [ebp - 0xca0]
push eax
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0xc20]
xor dword [ebp - 0xca0], eax
lea eax, [ebp - 0xca0]
mov dword [ebp - 0xc18], eax
mov dword [ebp - 0xca8], 0
jmp 0x1000858c
inc dword [ebp - 0xca8]
cmp dword [ebp - 0xca8], 2
jge 0x1000865f
mov dword [ebp - 0xc2c], 0
jmp 0x100085ab
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 4
jge 0x100085e8
mov eax, dword [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc18]
xor edx, edx
mov dl, byte [ecx + eax]
mov eax, dword [ebp - 0xc2c]
shl eax, 8
add edx, eax
mov al, byte [edx + ebp - 0x814]
mov ecx, dword [ebp - 0xc2c]
mov edx, dword [ebp - 0xc18]
mov byte [edx + ecx], al
jmp 0x100085a5
mov dword [ebp - 0xc2c], 0
jmp 0x100085fa
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 4
jge 0x10008624
mov eax, dword [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc18]
mov al, byte [ecx + eax]
mov ecx, dword [ebp - 0xc2c]
xor edx, edx
mov dl, byte [ecx + ebp - 0x10]
mov byte [edx + ebp - 0xc], al
jmp 0x100085f4
mov dword [ebp - 0xc2c], 0
jmp 0x10008636
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 4
jge 0x1000865a
mov eax, dword [ebp - 0xc2c]
mov al, byte [eax + ebp - 0xc]
mov ecx, dword [ebp - 0xc2c]
mov edx, dword [ebp - 0xc18]
mov byte [edx + ecx], al
jmp 0x10008630
jmp 0x10008586
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.10007f96
add esp, 0x10
mov dword [ebp - 0xc1c], eax
mov eax, dword [ebp - 0xca0]
cmp dword [ebp - 0xc1c], eax
jae 0x1000869f
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x1000883b
lea eax, [ebp - 0xc1c]
mov dword [ebp - 0xc18], eax
mov dword [ebp - 0xca8], 0
jmp 0x100086bd
inc dword [ebp - 0xca8]
cmp dword [ebp - 0xca8], 2
jge 0x10008773
mov dword [ebp - 0xc2c], 0
jmp 0x100086dc
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 4
jge 0x10008706
mov eax, dword [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc18]
mov al, byte [ecx + eax]
mov ecx, dword [ebp - 0xc2c]
xor edx, edx
mov dl, byte [ecx + ebp - 4]
mov byte [edx + ebp - 0xc], al
jmp 0x100086d6
mov dword [ebp - 0xc2c], 0
jmp 0x10008718
inc dword [ebp - 0xc2c]
cmp dword [ebp - 0xc2c], 4
jge 0x1000876e
mov eax, dword [ebp - 0xc2c]
mov al, byte [eax + ebp - 0xc]
mov ecx, dword [ebp - 0xc2c]
mov edx, dword [ebp - 0xc18]
mov byte [edx + ecx], al
mov eax, dword [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc18]
xor edx, edx
mov dl, byte [ecx + eax]
mov eax, dword [ebp - 0xc2c]
shl eax, 8
add edx, eax
mov al, byte [edx + ebp - 0xc14]
mov ecx, dword [ebp - 0xc2c]
mov edx, dword [ebp - 0xc18]
mov byte [edx + ecx], al
jmp 0x10008712
jmp 0x100086b7
mov eax, dword [ebp - 0xc1c]
mov dword [0x100122c6], eax
push 0
push 0
push 0
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0xca8], 0
jmp 0x100087a3
inc dword [ebp - 0xca8]
cmp dword [ebp - 0xca8], 0x14
jge 0x1000881c
cmp dword [ebp - 0xca8], 0x10
jge 0x100087eb
call fcn.10009a71
mov byte [ebp - 8], al
cmp dword [ebp - 0xca8], 4
jge 0x100087e9
mov eax, dword [ebp - 0xca8]
mov ecx, dword [ebp - 0xc18]
xor edx, edx
mov dl, byte [ecx + eax]
xor dl, byte [ebp - 8]
mov eax, dword [ebp - 0xca8]
mov ecx, dword [ebp - 0xc18]
mov byte [ecx + eax], dl
jmp 0x100087fe
mov eax, dword [ebp - 0xca8]
mov ecx, dword [ebp - 0xc18]
mov al, byte [ecx + eax - 0x10]
mov byte [ebp - 8], al
push 0
lea eax, [ebp - 0xc9c]
push eax
push 1
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x1000879d
mov eax, dword [ebp - 0xc98]
mov dword [0x100122c6], eax
mov eax, dword [ebp - 0xc28]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x1000883b
pop edi
pop esi
pop ebx
leave
ret