Function at 0x5945c0
Capabilities:
Encode data using xor

Disassembly:
push ebx
sub esp, 0x28
mov eax, dword [0xd47044]
mov dword [esp + 0x1c], eax
xor eax, eax
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x594455
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x594442
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [ebx + 0x24]
mov dword [ebx + 0x1c], 0
xor eax, eax
mov edx, dword [esp + 0x1c]
sub edx, dword [0xd47044]
jne 0x59445c
add esp, 0x28
pop ebx
ret
mov eax, 0xfffffffe
jmp 0x594444
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub esp, 0x2c
mov eax, dword [0xd47044]
mov dword [esp + 0x1c], eax
xor eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0xf
mov dword [esp], eax
call 0x5944b0
mov edx, dword [esp + 0x1c]
sub edx, dword [0xd47044]
jne 0x5944a2
add esp, 0x2c
ret
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x20
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [0xd47044]
mov dword [esp + 0x1c], eax
xor eax, eax
test ebx, ebx
je 0x5945a7
cmp esi, 0xf
je 0x5944ea
mov dword [esp], esi
call fcn.00402730
cmp eax, 0xf
jne 0x5945a0
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
test eax, eax
je 0x594580
mov edx, dword [ebx + 0x24]
test edx, edx
je 0x594593
mov dword [esp + 8], 0xa0c4
mov dword [esp + 4], 1
mov edx, dword [ebx + 0x28]
mov dword [esp], edx
call eax
test eax, eax
je 0x5945ae
vmovdqu xmm0, xmmword [0xd42480]
mov dword [ebx + 0x1c], eax
mov dword [eax], 0
mov dword [eax + 0xa0c0], 1
mov dword [eax + 0x20bc], esi
vmovdqu xmmword [eax + 0x20ac], xmm0
xor eax, eax
mov edx, dword [esp + 0x1c]
sub edx, dword [0xd47044]
jne 0x5945b5
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x20], 0x5932f0
mov eax, 0x5932f0
test edx, edx
jne 0x594522
mov dword [ebx + 0x24], 0x593330
jmp 0x594522
mov eax, 0xffffd8f0
jmp 0x594569
mov eax, 0xfffffffe
jmp 0x594569
mov eax, 0xfffffffc
jmp 0x594569
call fcn.00401690
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [0xd47044]
mov dword [esp + 0xc], edx
xor edx, edx
test eax, eax
je 0x594639
mov dword [eax + 0x2c], 0
vmovdqu xmm0, xmmword [0xd42480]
mov dword [eax + 0x18], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov eax, dword [eax + 0x1c]
mov dword [eax], 0
mov dword [eax + 0xa0c0], 1
vmovdqu xmmword [eax + 0x20ac], xmm0
xor eax, eax
mov edx, dword [esp + 0xc]
sub edx, dword [0xd47044]
jne 0x594640
leave
ret
mov eax, 0xfffffffe
jmp 0x59462b
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub esp, 0x3c
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [0xd47044]
mov dword [esp + 0x2c], eax
xor eax, eax
lea eax, [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call 0x5946a0
mov edx, dword [esp + 0x2c]
sub edx, dword [0xd47044]
jne 0x59469a
add esp, 0x3c
ret
call fcn.00401690
nop
push ebp
vpxor xmm0, xmm0, xmm0
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x60
mov edi, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov eax, dword [0xd47044]
mov dword [esp + 0x5c], eax
xor eax, eax
mov eax, dword [ebp + 0x10]
lea esi, [esp + 0x24]
vmovdqu xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
mov eax, dword [edi]
vmovdqu xmmword [esp + 0x3c], xmm0
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
vmovdqu xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x30], eax
mov eax, dword [edx]
mov dword [esp], esi
mov dword [esp + 0x34], eax
call 0x594470
mov ebx, eax
test eax, eax
je 0x594720
mov eax, dword [esp + 0x5c]
sub eax, dword [0xd47044]
jne 0x594772
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 4
mov dword [esp], esi
call fcn.00594050
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov eax, dword [esp + 0x28]
sub dword [edi], eax
cmp ebx, 1
je 0x594760
mov dword [esp], esi
call fcn.00594410
cmp ebx, 0xfffffffb
jne 0x594703
mov eax, dword [esp + 0x28]
test eax, eax
mov eax, 0xfffffffd
cmove ebx, eax
jmp 0x594703
mov eax, dword [esp + 0x38]
mov dword [edx], eax
mov dword [esp], esi
call fcn.00594410
mov ebx, eax
jmp 0x594703
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub esp, 0x1c
mov eax, dword [0xd47044]
mov dword [esp + 0xc], eax
xor eax, eax
mov eax, dword [esp + 0xc]
sub eax, dword [0xd47044]
jne 0x5947a3
mov eax, str.11.0.2
add esp, 0x1c
ret
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
sub esp, 0x3c
mov eax, dword [0xd47044]
mov dword [esp + 0x2c], eax
xor eax, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call 0x594820
mov edx, dword [esp + 0x2c]
sub edx, dword [0xd47044]
jne 0x594813
add esp, 0x3c
ret
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov esi, dword [esp + 0x100]
mov eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0x108]
mov dword [esp + 0x40], esi
lea esi, [esp + 0x78]
mov ecx, dword [esp + 0xf8]
mov dword [esp], esi
mov edx, dword [esp + 0xfc]
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x38], eax
mov eax, dword [0xd47044]
mov dword [esp + 0xcc], eax
xor eax, eax
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], edx
call fcn.005a0560
test ebp, ebp
mov eax, 6
cmovs ebp, eax
test edi, edi
je 0x594918
mov eax, dword [esp + 0x38]
test eax, eax
je 0x594918
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x5948b6
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x594918
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x5948c6
cmp word [esp + 0x48], 0
jne 0x594918
mov eax, ebp
and eax, 0xf
cmp eax, 0xa
ja 0x594918
movzx eax, byte [edi]
call fcn.005a0430
test eax, eax
jne 0x594928
test ebx, ebx
je 0x5948f0
mov dword [ebx], 0x19
lea esi, [esi]
lea esi, [esi]
xor edx, edx
mov eax, dword [esp + 0xcc]
sub eax, dword [0xd47044]
jne 0x594b11
add esp, 0xdc
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
test ebx, ebx
je 0x5948f0
mov dword [ebx], 0x18
jmp 0x5948f0
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00402920
mov dword [esp + 0x4c], eax
test eax, eax
je 0x594a30
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0059f920
mov dword [esp + 0x4c], 1
test eax, eax
je 0x594aa8
movzx eax, word [esp + 0x48]
mov dword [esp + 4], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebp
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.0059bd30
mov dword [esp], esi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x3c], eax
call fcn.0059f1e0
mov edx, dword [esp + 0x3c]
test eax, eax
jne 0x594ac0
test edi, edi
jne 0x594ae8
xor edx, edx
mov eax, esi
mov edi, dword [esp + 0x94]
call fcn.0059f080
test eax, eax
jne 0x594a0b
test edi, edi
jne 0x594a0b
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x594b00
xor edx, edx
test ebx, ebx
je 0x5948f2
mov dword [ebx], edi
jmp 0x5948f2
mov eax, ebp
mov dword [esp + 0x14], 0
or ah, 8
mov dword [esp + 0x18], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.005983c0
test eax, eax
je 0x594aa8
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0059fb20
test eax, eax
jne 0x59497c
test ebx, ebx
je 0x594a96
mov eax, dword [esp + 0x94]
mov dword [ebx], eax
xor edx, edx
mov eax, esi
call fcn.00595db0
jmp 0x5948f0
test ebx, ebx
je 0x5948f0
mov eax, dword [esp + 0x94]
mov dword [ebx], eax
jmp 0x5948f0
mov eax, esi
mov dword [esp + 0x3c], edx
call fcn.0059f080
mov edx, dword [esp + 0x3c]
test eax, eax
je 0x594a00
test edx, edx
jne 0x594a19
jmp 0x594a0b
xor edx, edx
mov eax, esi
call fcn.0059f080
jmp 0x594a0b
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sub.msvcrt.dll_remove
jmp 0x594a17
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop