Function at 0x5f758b
Capabilities:
Encode data using xor

Disassembly:
pop dword [ebp - 4]
sub ebp, 4
pop dword [ebp - 4]
sub ebp, 4
push ebp
pop eax
push dword [eax]
call fcn.005fa304
pop eax
or eax, eax
je 0x5f741a
sub ebp, 0x100
mov edi, ebp
mov ecx, 0x40
xor eax, eax
rep stosd dword es:[edi], eax
push ebp
push 0x100
call fcn.006e99ef
push 0x92
lea eax, [ebp + 0x110]
push dword [eax]
pop eax
add eax, 0x3c
push dword [eax]
call fcn.0052eeb9
push dword [esp + 4]
call 0x5f7328
inc esp
dec ecx
inc ecx
dec esp
sub eax, 0xe8056a00
or eax, 0x58000f24
or eax, eax
je 0x5f7353
call fcn.006e97b6
dec esi
dec edi
and byte [ebp + 0x4f], cl
inc esp
inc ebp
dec ebp
and byte [ecx + ecx*2 + 0x41], al
dec esp
push ebx
inc ebp
inc edi
and byte [ebx + 0x75], dl
jo 0x5f73be
insb byte es:[edi], dx
imul esp, dword [ebp + 0x64], 0xe4158b00
adc eax, dword [eax]
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
call fcn.006e9a34
lea eax, [ebp + 0x100]
push dword [eax]
call fcn.00548d13
lea eax, [ebp + 0x100]
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x15
movsx eax, word [eax]
push eax
push 0
pop eax
pop ebx
cmp ebx, eax
setne al
movsx eax, al
dec eax
pop ebx
and eax, ebx
or eax, eax
je 0x5f73b4
push 0x33
jmp 0x5f73e3
lea eax, [ebp + 0x100]
push dword [eax]
call fcn.00548d13
lea eax, [ebp + 0x100]
push dword [eax]
call fcn.0057b27a
pop eax
pop ebx
sbb ebp, esi
dec dword [ebp + 0x10085]
add bh, bh
xor al, ch
lodsb al, byte [esi]
clc
call [eax + 0x5b]
or eax, ebx
or eax, eax
je 0x5f73e1
push 0x32
jmp 0x5f73e3
push 0x31
push ebp
call fcn.0052ccf8
pop eax
pop ebx
add eax, ebx
inc eax
pop ebx
mov byte [eax], bl
push ebp
call fcn.006e9997
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
add ebp, 0x108
jmp dword [ebp - 4]
call fcn.006e99d0
add eax, 0x4c414944
sub eax, 0x5855016a
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052f0ca
call fcn.006e99d0
add dword [0x5855026a], ebp
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052f0ca
push ebp
pop eax
push dword [eax]
call fcn.00548d13
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x15
movsx eax, word [eax]
push eax
push 0
pop eax
pop ebx
cmp ebx, eax
setne al
movsx eax, al
dec eax
pop ebx
and eax, ebx
or eax, eax
je 0x5f748f
call fcn.006e99d0
add ebp, dword [ebx + esi]
sub al, 0xe9
xor eax, 0x55000000
push ebp
pop eax
push dword [eax]
call fcn.00548d13
push ebp
pop eax
push dword [eax]
call fcn.0057b27a
pop eax
pop ebx
or eax, ebx
or eax, eax
je 0x5f74bb
call fcn.006e99d0
add ebp, dword [edx + esi]
sub al, 0xe9
or dword [eax], eax
add byte [eax], al
call fcn.006e99d0
add ebp, dword [ecx + esi]
sub al, 0x6a
add eax, 0x30ff5855
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052f0ca
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x15
movsx eax, word [eax]
push eax
push 0
pop eax
pop ebx
cmp ebx, eax
jne 0x5f75ca
push 3
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052ef19
push 0x32
pop eax
pop ebx
cmp ebx, eax
jne 0x5f7517
push 0x32
jmp 0x5f7519
push 0x29
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x50
push dword [eax]
pop eax
add eax, 0x2dc2
pop ebx
mov byte [eax], bl
push 0x435ad3
pop eax
movzx eax, byte [eax]
or eax, eax
jne 0x5f7583
push 0x12
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052ef4b
pop eax
or eax, eax
je 0x5f756d
call fcn.006e99d0
or ebp, dword [eax + esi]
xor ch, byte [0x452c4830]
sub al, 0x42
jmp 0x5f757e
call fcn.006e99d0
or ebp, dword [eax + esi]
xor ch, byte [0x452c3230]
sub al, 0x42
jmp 0x5f75c4
jmp 0x5f75c4
push 0x12
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052ef4b
pop eax
or eax, eax
je 0x5f75b3
call fcn.006e99d0
or ebp, dword [eax + esi]
xor ch, byte [0x452c4830]
sub al, 0x42
jmp 0x5f75c4
call fcn.006e99d0
or ebp, dword [eax + esi]
xor ch, byte [0x452c4530]
sub al, 0x42
add ebp, 8
add ebp, 8
jmp dword [ebp - 4]
push 3
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
call fcn.0052ef19
push 0x62
pop eax
pop ebx
cmp ebx, eax
je 0x5f75ee
push 0x5d
jmp 0x5f75f0
push 0x62
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x50
push dword [eax]
pop eax
add eax, 0x2dc2
pop ebx
mov byte [eax], bl
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x50
push dword [eax]
pop eax
add eax, 0x2dc2
movzx eax, byte [eax]
push eax
push 0x62
pop eax
pop ebx
cmp ebx, eax
jne 0x5f7659
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x43
movzx eax, byte [eax]
push eax
push 1
pop eax
pop ebx
cmp ebx, eax
jne 0x5f764a
call fcn.006e99d0
add al, 0x2c
xor eax, 0xae92d32
add byte [eax], al
add al, ch
and dword [ebx], 0x2c04000f
call fcn.006e99d0
add al, 0x2c
xor eax, 0x31e92d31
add byte [eax], al
add byte [ebp + 0x58], dl
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x43
movzx eax, byte [eax]
push eax
push 1
pop eax
pop ebx
cmp ebx, eax
jne 0x5f7680
call fcn.006e99d0
add al, 0x2c
xor esi, dword [edx]
sub eax, 0xae9
add al, ch
dec ebx
and ecx, dword [edi]
add byte [esp + ebp], al
call fcn.006e99d0
add al, 0x2c
xor esi, dword [ecx]
sub eax, 0x30ff5855
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x207
push eax
call fcn.006eab61
pop ss
pop eax
or eax, eax
je 0x5f76ba
call 0x5f76b5
sub al, 0x46
sub al, 0x42
add cl, ch
or eax, dword [eax]
add byte [eax], al
call 0x5f76c5
sub al, 0x31
sub al, 0x42
add al, ch
int 0x22
lldt word [ebp + 0x58]
push dword [eax]
pop eax
add eax, 0x42
movzx eax, byte [eax]
push eax
cmp dword [esp], 0x6a
jne 0x5f7709
pop eax
call fcn.006e99d0
add dh, byte [eax]
inc esp
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
add ebp, 8
jmp dword [ebp - 4]
cmp dword [esp], 0x67
jne 0x5f773c
pop eax
call fcn.006e99d0
add dh, byte [eax]
push ebp
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
add ebp, 8
jmp dword [ebp - 4]
cmp dword [esp], 2
jne 0x5f776f
pop eax
call fcn.006e99d0
add dh, byte [eax]
push eax
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
add ebp, 8
jmp dword [ebp - 4]
cmp dword [esp], 0x18
jne 0x5f77a2
pop eax
call fcn.006e99d0
add dh, byte [eax]
push eax
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
add ebp, 8
jmp dword [ebp - 4]
pop eax
call fcn.006e99d0
add dh, byte [eax]
xor bl, byte [eax + 0x48]
push eax
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x3b8
push eax
call fcn.006eab2b
call fcn.006e99d0
add eax, 0x202c202c
sub al, 0x55
pop eax
push dword [eax]
pop eax
add eax, 0x43
movzx eax, byte [eax]
push eax
push 1
pop eax
pop ebx
cmp ebx, eax
jne 0x5f7823
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x50
push dword [eax]
pop eax
add eax, 0x2dc2
movzx eax, byte [eax]
push eax
push 0x62
pop eax
pop ebx
cmp ebx, eax
jne 0x5f7817
call fcn.006e99d0
add dword [eax - 0x17], edx
pop es
add byte [eax], al
add al, ch
mov ah, 0x21
sldt word [ecx]
dec ebp
jmp 0x5f791b
call fcn.006e99d0
add dword [ebp - 0x17], ecx
clc
add byte [eax], al
add byte [ebp + 0x58], dl
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x1ef
push eax
call fcn.006eab61
pop ss
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x1cf
push eax
call fcn.006eab61
pop ss
pop eax
or eax, eax
je 0x5f78a7
pop eax
or eax, eax
je 0x5f786f
call fcn.006e99d0
add dword [0x33e9], esi
add byte [ebp + 0x58], dl
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x1e7
push eax
call fcn.006eab61
pop ss
pop eax
or eax, eax
je 0x5f789b
call fcn.006e99d0
add dword [esi], esi
jmp 0x5f78a2
call fcn.006e99d0
add dword [edi], esi
jmp 0x5f791b
pop eax
or eax, eax
je 0x5f78bc
call fcn.006e99d0
add dword [ecx - 0x17], ecx
pop edi
add byte [eax], al
add byte [ebp + 0x58], dl
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x4c
push dword [eax]
pop eax
add eax, 0x1e7
push eax
call fcn.006eab61
pop ss
pop eax
or eax, eax
je 0x5f78e8
call fcn.006e99d0
add dword [ebx - 0x17], edx
xor eax, dword [eax]
add byte [eax], al
push ebp
pop eax
push dword [eax]
pop eax
add eax, 0x50
push dword [eax]
pop eax
add eax, 0x2dc2
movzx eax, byte [eax]
push eax
push 0x62
pop eax
pop ebx
cmp ebx, eax
jne 0x5f7914
call fcn.006e99d0
add dword [eax - 0x17], edx
pop es
add byte [eax], al
add al, ch
mov bh, 0x20
sldt word [ecx]
dec ebp
call fcn.006e99d0
add dword [ebp - 0x18], ecx
mov al, 0x20
sldt word [ecx]
add ebp, 8
call fcn.006e99d0
add dword [esi], ebp
add ebp, 8
jmp dword [ebp - 4]