Function at 0x593280
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 0x593115
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x593102
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 0x59311c
add esp, 0x28
pop ebx
ret
mov eax, 0xfffffffe
jmp 0x593104
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 0x593170
mov edx, dword [esp + 0x1c]
sub edx, dword [0xd47044]
jne 0x593162
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 0x593267
cmp esi, 0xf
je 0x5931aa
mov dword [esp], esi
call fcn.00402730
cmp eax, 0xf
jne 0x593260
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 0x593240
mov edx, dword [ebx + 0x24]
test edx, edx
je 0x593253
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 0x59326e
vmovdqu xmm0, xmmword [0xd41640]
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 0x593275
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x20], 0x591fb0
mov eax, 0x591fb0
test edx, edx
jne 0x5931e2
mov dword [ebx + 0x24], 0x591ff0
jmp 0x5931e2
mov eax, 0xffffd8f0
jmp 0x593229
mov eax, 0xfffffffe
jmp 0x593229
mov eax, 0xfffffffc
jmp 0x593229
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 0x5932f9
mov dword [eax + 0x2c], 0
vmovdqu xmm0, xmmword [0xd41640]
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 0x593300
leave
ret
mov eax, 0xfffffffe
jmp 0x5932eb
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 0x593360
mov edx, dword [esp + 0x2c]
sub edx, dword [0xd47044]
jne 0x59335a
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 0x593130
mov ebx, eax
test eax, eax
je 0x5933e0
mov eax, dword [esp + 0x5c]
sub eax, dword [0xd47044]
jne 0x593432
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.00592d10
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov eax, dword [esp + 0x28]
sub dword [edi], eax
cmp ebx, 1
je 0x593420
mov dword [esp], esi
call fcn.005930d0
cmp ebx, 0xfffffffb
jne 0x5933c3
mov eax, dword [esp + 0x28]
test eax, eax
mov eax, 0xfffffffd
cmove ebx, eax
jmp 0x5933c3
mov eax, dword [esp + 0x38]
mov dword [edx], eax
mov dword [esp], esi
call fcn.005930d0
mov ebx, eax
jmp 0x5933c3
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 0x593463
mov eax, 0xd3d6ac
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 0x5934e0
mov edx, dword [esp + 0x2c]
sub edx, dword [0xd47044]
jne 0x5934d3
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.0059f220
test ebp, ebp
mov eax, 6
cmovs ebp, eax
test edi, edi
je 0x5935d8
mov eax, dword [esp + 0x38]
test eax, eax
je 0x5935d8
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x593576
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x5935d8
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x593586
cmp word [esp + 0x48], 0
jne 0x5935d8
mov eax, ebp
and eax, 0xf
cmp eax, 0xa
ja 0x5935d8
movzx eax, byte [edi]
call fcn.0059f0f0
test eax, eax
jne 0x5935e8
test ebx, ebx
je 0x5935b0
mov dword [ebx], 0x19
lea esi, [esi]
lea esi, [esi]
xor edx, edx
mov eax, dword [esp + 0xcc]
sub eax, dword [0xd47044]
jne 0x5937d1
add esp, 0xdc
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
test ebx, ebx
je 0x5935b0
mov dword [ebx], 0x18
jmp 0x5935b0
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 0x5936f0
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.0059e5e0
mov dword [esp + 0x4c], 1
test eax, eax
je 0x593768
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.0059a9f0
mov dword [esp], esi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x3c], eax
call fcn.0059dea0
mov edx, dword [esp + 0x3c]
test eax, eax
jne 0x593780
test edi, edi
jne 0x5937a8
xor edx, edx
mov eax, esi
mov edi, dword [esp + 0x94]
call fcn.0059dd40
test eax, eax
jne 0x5936cb
test edi, edi
jne 0x5936cb
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x5937c0
xor edx, edx
test ebx, ebx
je 0x5935b2
mov dword [ebx], edi
jmp 0x5935b2
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.00597080
test eax, eax
je 0x593768
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0059e7e0
test eax, eax
jne 0x59363c
test ebx, ebx
je 0x593756
mov eax, dword [esp + 0x94]
mov dword [ebx], eax
xor edx, edx
mov eax, esi
call fcn.00594a70
jmp 0x5935b0
test ebx, ebx
je 0x5935b0
mov eax, dword [esp + 0x94]
mov dword [ebx], eax
jmp 0x5935b0
mov eax, esi
mov dword [esp + 0x3c], edx
call fcn.0059dd40
mov edx, dword [esp + 0x3c]
test eax, eax
je 0x5936c0
test edx, edx
jne 0x5936d9
jmp 0x5936cb
xor edx, edx
mov eax, esi
call fcn.0059dd40
jmp 0x5936cb
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0040f968
jmp 0x5936d7
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop