Function at 0x419460
Capabilities:
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dd0c4
mov eax, dword fs:[0]
push eax
sub esp, 0x480
mov eax, dword [0x532ab0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x424], eax
push 0xb
push 0x51904c
lea ecx, [ebp - 0x424]
mov dword [ebp - 4], 0
call fcn.004100d0
push 0x1a
push str.IF_NOT_EXIST__1_GOTO_END_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 0xc
push str.SET__a_i0_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 9
push str.:REPEAT_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 0x15
push str.IF__i_60_GOTO_END_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 8
push str.DEL__1_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 0x1a
push str.IF_NOT_EXIST__1_GOTO_END_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 0x21
push str.ping_1.1.1.1__n_1__w_1000___nul_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 0x10
push str.SET__a_i_i_1_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 0xd
push str.GOTO_REPEAT_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 6
push str.:END_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
push 8
push str.DEL__0_r_n
lea ecx, [ebp - 0x424]
call fcn.004100d0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.004a96d0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x43c]
call fcn.004019c0
sub esp, 8
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 1
call fcn.00419b40
lea ecx, [ebp - 0x43c]
mov byte [ebp - 4], 2
push ecx
mov edx, eax
lea ecx, [ebp - 0x440]
call fcn.00404430
mov edx, eax
lea ecx, [ebp - 0x430]
mov byte [ebp - 4], 3
call fcn.00419ff0
add esp, 4
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x440]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41962b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41964e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x438], eax
mov byte [ebp - 4], 7
call fcn.004a5e75
push eax
lea eax, [ebp - 0x438]
push 0x517de4
push eax
call fcn.00404d60
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push eax
call fcn.004a96d0
add esp, 0x18
lea eax, [ebp - 0x420]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x428], esi
lea eax, [ebp - 0x420]
push eax
lea edx, [ebp - 0x428]
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 8
call fcn.00419e30
lea ecx, [ebp - 0x438]
push ecx
mov edx, eax
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 9
call fcn.00404430
push str..bat
mov edx, eax
lea ecx, [ebp - 0x42c]
mov byte [ebp - 4], 0xa
call fcn.00419e30
add esp, 0xc
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419735
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419758
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419775
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x434], esi
mov byte [ebp - 4], 0xf
mov edi, dword [ebp - 0x424]
test edi, edi
je 0x4197c9
test edi, 0xffff0000
jne 0x4197c9
movzx eax, di
mov ecx, eax
mov dword [ebp - 0x428], eax
call fcn.00401140
test eax, eax
je 0x4197db
push dword [ebp - 0x428]
lea ecx, [ebp - 0x434]
push eax
call fcn.0041a530
jmp 0x4197d5
push edi
lea ecx, [ebp - 0x434]
call fcn.00419ab0
mov esi, dword [ebp - 0x434]
push 0
push 0x80
push 4
push 0
push 2
push 0x40000000
mov byte [ebp - 4], 0x10
push dword [ebp - 0x42c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x428], eax
cmp eax, 0xffffffff
je 0x419860
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x444]
push eax
mov dword [ebp - 0x444], 0
push dword [esi - 0xc]
push esi
push dword [ebp - 0x428]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x419854
push dword [ebp - 0x428]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push dword [ebp - 0x428]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push dword [ebp - 0x428]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x3c
lea eax, [ebp - 0x48c]
push 0
push eax
call fcn.004a96d0
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x48c], 0x3c
mov dword [ebp - 0x480], str.open
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
add esp, 0xc
or ecx, edx
jge 0x4198af
push 0
lea ecx, [ebp - 0x42c]
call fcn.00401ca0
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x47c], eax
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x488], 0x440
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
or ecx, edx
jge 0x4198f1
push 0
lea ecx, [ebp - 0x430]
call fcn.00401ca0
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x478], eax
mov eax, dword [0x53b868]
test eax, eax
jne 0x41992b
push str.Shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x419922
push str.ShellExecuteExW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x53b868], eax
jmp 0x419927
mov eax, dword [0x53b868]
test eax, eax
je 0x419934
lea ecx, [ebp - 0x48c]
push ecx
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419951
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419974
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419997
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x430]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4199ba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4199dd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4199fb
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret