Function at 0x4246f0
Capabilities:
Encode data using xor
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x447fce
mov eax, dword fs:[0]
push eax
sub esp, 0x1f0
mov eax, dword [0x45e084]
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 edi, ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
push esi
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x1b0], 0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
dec eax
test eax, eax
jle 0x424762
lea ecx, [esi + eax*2]
movzx edx, word [ecx]
cmp edx, 0x2f
je 0x42475f
cmp edx, 0x5c
je 0x42475f
dec eax
sub ecx, 2
test eax, eax
jg 0x424748
jmp 0x424762
lea esi, [ecx + 2]
push 0xb0
lea eax, [ebp - 0x1ac]
push 0
push eax
call fcn.00428df0
add esp, 4
lea ecx, [ebp - 0x1ac]
call fcn.00415bc0
mov edx, 0x4571b4
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x19c]
call fcn.0041ad80
push 0
mov dword [ebp - 0x1b0], eax
call fcn.00431e6f
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xfc]
push eax
mov dword [ebp - 0xf8], edx
call fcn.00432142
add esp, 8
mov dword [ebp - 0x1e4], 0x11
mov edx, eax
mov dword [ebp - 0x1e0], 0x740009
mov dword [ebp - 0x1dc], 0xa0003
xor ecx, ecx
mov dword [ebp - 0x1d8], 0x1c005d
mov dword [ebp - 0x1d4], 0x570017
mov dword [ebp - 0x1d0], 0x100014
mov dword [ebp - 0x1cc], 0xd007e
mov dword [ebp - 0x1c8], 0x74001d
mov dword [ebp - 0x1c4], 0x1e0000
mov dword [ebp - 0x1c0], 0x3d006f
nop word [eax + eax]
lea eax, [ecx + 0x2c]
xor word [ebp + ecx*2 - 0x1e0], ax
inc ecx
mov eax, dword [ebp - 0x1e4]
cmp ecx, eax
jb 0x424830
xor ecx, ecx
mov word [ebp + eax*2 - 0x1e0], cx
lea eax, [ebp - 0x1e0]
push edx
push eax
lea eax, [ebp - 0xd8]
push 0xc8
push eax
call fcn.00430a5c
add esp, 0x10
mov dword [ebp - 0xe0], 0
xor eax, eax
mov dword [ebp - 0xdc], 7
lea ecx, [ebp - 0xd8]
mov word [ebp - 0xf0], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x424892
sub ecx, edx
lea eax, [ebp - 0xd8]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.0040b0c0
mov byte [ebp - 4], 1
lea edx, [ebp - 0xf0]
cmp dword [ebp - 0xdc], 8
push dword [ebp - 0xe0]
cmovae edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x1b0]
call fcn.0041b310
add esp, 4
mov edx, 0x4571ac
mov ecx, eax
call fcn.0041ad80
mov edx, 0x45
mov ecx, eax
call fcn.00424de0
mov edx, 0x456fa0
mov ecx, eax
call fcn.0041ad80
mov edx, esi
mov ecx, eax
call fcn.0041ad80
mov edx, 0x45703c
mov ecx, eax
call fcn.0041ad80
push ebx
mov ecx, eax
call fcn.00424c80
mov edx, 0x4571a8
mov ecx, eax
call fcn.0041ad80
mov ecx, dword [ebp - 0xf4]
mov esi, eax
lea eax, [ebp - 0x1fc]
push eax
call fcn.00415b00
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424950
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, esi
call fcn.0041b310
mov edx, 2
mov dword [ebp - 0x1b8], 0x270021
add esp, 4
mov dword [ebp - 0x1bc], edx
mov esi, eax
mov dword [ebp - 0x1b4], 0x2e
xor ecx, ecx
lea eax, [ecx + 0x2c]
xor word [ebp + ecx*2 - 0x1b8], ax
inc ecx
mov edx, dword [ebp - 0x1bc]
cmp ecx, edx
jb 0x424980
xor eax, eax
mov ecx, esi
mov word [ebp + edx*2 - 0x1b8], ax
lea edx, [ebp - 0x1b8]
call fcn.0041ad80
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x1e8]
cmp edx, 8
jb 0x4249f1
mov ecx, dword [ebp - 0x1fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4249e7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x424c5b
push edx
push ecx
call fcn.00426dff
add esp, 8
xor eax, eax
mov dword [ebp - 0x1ec], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x1e8], 7
mov word [ebp - 0x1fc], ax
cmp edx, 8
jb 0x424a51
mov ecx, dword [ebp - 0xf0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x424a47
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x424c60
push edx
push ecx
call fcn.00426dff
add esp, 8
mov byte [ebp - 4], 3
xor eax, eax
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 7
mov word [ebp - 0xf0], ax
mov dword [ebp - 0x1b0], 5
test cl, 2
jne 0x424aaf
mov eax, dword [ebp - 0x174]
mov edx, dword [eax]
test edx, edx
je 0x424aaf
cmp edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x184]
cmovb edx, dword [ebp - 0x15c]
mov ecx, dword [eax]
sub edx, ecx
sar edx, 1
push edx
jmp 0x424ad9
test cl, 4
jne 0x424ae5
mov eax, dword [ebp - 0x178]
mov edx, dword [eax]
test edx, edx
je 0x424ae5
mov eax, dword [ebp - 0x188]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x168]
mov eax, dword [eax]
add eax, eax
sub eax, ecx
add eax, edx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0xf0]
call fcn.0040b0c0
mov dword [ebp - 4], 0
lea eax, [ebp - 0xf0]
cmp dword [ebp - 0xdc], 8
cmovae eax, dword [ebp - 0xf0]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, dword [ebp - 0xdc]
cmp edx, 8
jb 0x424b47
mov ecx, dword [ebp - 0xf0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x424b3d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x424c65
push edx
push ecx
call fcn.00426dff
add esp, 8
cmp dword [edi + 0x18], 0
je 0x424c32
lea eax, [ebp - 0x1fc]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00415b00
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xf0]
call fcn.004154d0
mov edx, dword [ebp - 0x1e8]
cmp edx, 8
jb 0x424bb4
mov ecx, dword [ebp - 0x1fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x424baa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x424c6a
push edx
push ecx
call fcn.00426dff
add esp, 8
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0xf4]
push 0
push ecx
push dword [ebp - 0xe0]
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
push eax
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x424bea
call fcn.00413b10
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
jne 0x424bfc
call fcn.00413b10
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x424c32
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x424c28
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x424c6f
push edx
push ecx
call fcn.00426dff
add esp, 8
lea ecx, [ebp - 0x1ac]
call fcn.00415a40
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.004267b1
mov esp, ebp
pop ebp
ret 0x14
call fcn.0042bce9
call fcn.0042bce9
call fcn.0042bce9
call fcn.0042bce9
call fcn.0042bce9
int3