Function at 0x5c9db3
Capabilities:
Encode data using xor

Disassembly:
pushal
mov bx, si
setnp bl
popal
push di
mov byte [esp], ch
lea esp, [esp]
mov byte [esp], al
push edx
push dword [esp + 1]
push word [esp + 9]
jmp 0x55177a
pushfd
mov word [esp], si
lea esp, [esp + 2]
mov byte [esp], al
push word [esp]
push si
pop word [esp]
push dword [esp]
mov dword [esp + 3], esi
mov si, 0x600e
lea esi, [ebp + 0x4a79]
bswap si
bswap esi
mov si, 0x3e52
pushal
mov byte [esp + 0x11], bl
lea esi, [ebx + 0x57e64d57]
mov dword [esp + 1], ecx
mov esi, edi
mov ch, byte [esp]
mov si, bp
mov si, 0x455d
mov ecx, esp
lea ecx, [ebx + edi]
mov si, word [esp]
bswap si
mov ch, 0xe4
push eax
mov esi, dword [esp]
mov esi, 0x61ec21f7
lea esi, [eax + edx]
not ah
xchg ch, ah
mov ah, ch
mov ch, dh
mov esi, 0x791806af
mov ax, dx
not si
xchg esi, ecx
mov al, byte [esp]
mov cl, 0xdc
lea esi, [esp + ebp]
pop eax
push esp
lea ecx, [ecx + 0xce]
mov cl, 0x8d
lea esp, [esp + 1]
mov ch, 0xd0
mov esi, 0x78f81d1e
xchg ch, cl
mov byte [esp + 1], al
lea esi, [ecx*4]
mov esi, dword [esp]
xchg word [esp], si
bswap cx
pop cx
lea esp, [esp + 1]
mov ecx, dword [esp + 1]
lea esi, [ebx*4]
pushfd
pushfd
pop esi
bswap esi
xchg word [esp], si
bswap esi
mov esi, 0x6554159
push word [esp + 3]
lea esi, [edx + ebx]
mov si, 0x5d3c
xchg word [esp + 2], si
lea esi, [ebp - 0xa61]
lea esp, [esp + 2]
mov esi, dword [esp + 0x27]
lea esp, [esp + 0x2c]
lea esp, [esp + 4]
jmp 0x551623
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x7f
jmp 0x5519c0
push word [esp + 9]
push dword [esp + 5]
mov dword [esp + 5], esp
pop word [esp + 4]
lea esp, [esp + 0xd]
mov byte [esp + 1], ah
pushal
lea esp, [esp + 3]
lea esp, [esp + 0x20]
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x55175d
mov ecx, ebx
xor esi, esi
call fcn.0057f1df
mov ecx, dword [eax + 0x7c]
mov eax, dword [eax + 0x78]
cmc
push eax
sub esp, 3
add esp, 5
lea esp, [esp + 2]
add eax, ebx
pushfd
jmp 0x5c97c1
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8
mov byte [esp + 1], cl
push dword [esp]
pop dword [esp]
pop word [esp]
mov word [esp], cx
lea esp, [esp + 2]
mov dword [ebp - 0x1c], ecx
jmp 0x5c9c94
mov edi, dword [eax + 0x20]
and dword [ebp - 4], esi
add edi, ebx
cmp dword [eax + 0x18], esi
jbe 0x5c9cde
jmp 0x5c9db0
test ecx, ecx
je 0x55175d
cmp eax, ebx
jbe 0x55175d
push ebx
mov ebx, ebp
lea ebx, [ebx + 0xc]
mov edx, dword [ebx]
pop ebx
cmp edx, 0x10000
jae 0x5c9c6b
mov ecx, dword [eax + 0x10]
cmp edx, ecx
jb 0x5c9cde
mov edi, dword [eax + 0x14]
stc
clc
cmc
jmp 0x5c9e0b
cmp esi, eax
jb 0x5ca021
mov ecx, dword [ebp - 0x1c]
push sp
lea esp, [esp + 1]
mov byte [esp], ah
mov byte [esp], ch
jmp 0x5ca0c6
mov ecx, dword [ebp - 4]
push esi
mov esi, ecx
lea esi, [esi*4]
jmp 0x5c9ed8
mov edx, dword [ebp + 0xc]
jmp 0x5c9db0
mov esi, dword [ecx + ebx]
cmc
cmc
push ax
mov byte [esp], dl
mov word [esp], cx
clc
lea esp, [esp + 2]
jmp 0x5c9fd9
sub esp, 8
sub esp, 7
lea esp, [esp + 3]
add edi, ecx
push ecx
lea esp, [esp + 0x10]
cmp edx, edi
jae 0x5c9cde
sub esp, 0x12
lea esp, [esp + 0xa]
pushfd
mov word [esp + 1], ax
sub edx, ecx
pushal
lea esp, [esp + 0x2c]
mov ecx, dword [eax + 0x1c]
lea ecx, [ecx + edx*4]
jmp 0x5c9de8
mov word [esp + 6], cx
pop dword [esp + 6]
lea esp, [esp + 0x1c]
mov dword [ebp - 8], edx
jmp 0x5c9f38
lea esi, [esi + edi]
mov ecx, dword [esi]
pop esi
stc
add ecx, ebx
pushal
mov word [esp + 0x1c], si
jmp 0x5c9eb8
push edx
mov word [esp + 1], dx
lea esp, [esp + 3]
lea esp, [esp]
push edx
jmp 0x5ca009
sbb ecx, ecx
sbb ecx, 0xffffffff
jmp 0x5c9fbb
mov edx, dword [ebp - 8]
mov dl, byte [edx]
cmp dl, byte [ecx]
jne 0x5c9f18
test dl, dl
je 0x5c9efc
push ecx
pushal
mov ebx, dword [esp]
jmp 0x5ca051
mov edx, dword [ebp - 4]
mov ecx, dword [eax + 0x24]
lea ecx, [ecx + edx*2]
movzx ecx, word [ecx + ebx]
mov edx, dword [eax + 0x1c]
lea ecx, [edx + ecx*4]
jmp 0x5c9de8
test ecx, ecx
je 0x5c9f88
inc dword [ebp - 4]
push ebx
mov ebx, ebp
lea ebx, [ebx - 4]
mov ecx, dword [ebx]
pop ebx
cmp ecx, dword [eax + 0x18]
jb 0x5c9dcc
jmp 0x5c9cde
add esi, ebx
pushal
pop word [esp + 0x11]
lea esp, [esp + 7]
push word [esp + 0xf]
push dword [esp + 0x10]
lea esp, [esp + 1]
lea esp, [esp + 0x1c]
jmp 0x5c9cde
mov dword [esp], esp
lea esp, [esp + 1]
xor ecx, ecx
push edi
lea esp, [esp + 2]
lea esp, [esp + 2]
lea esp, [esp + 4]
jmp 0x5c9fbb
test esi, esi
je 0x55175d
mov eax, esi
call fcn.0057f213
jmp 0x5519c2
lea eax, [eax*4]
mov ch, byte [esp]
mov dword [esp + 0x18], ebp
pushal
push word [esp + 0xc]
lea esp, [esp + 0x1a]
lea esp, [esp + 8]
popal
lea ecx, [ecx - 8]
mov edx, dword [ecx]
pop ecx
mov dl, byte [edx + 1]
mov byte [ebp + 0xb], dl
cmp dl, byte [ecx + 1]
jne 0x5c9f18
add dword [ebp - 8], 2
inc ecx
inc ecx
test dl, dl
jne 0x5c9ec8
je 0x5c9efc
lea esp, [esp + 0xc]
lea eax, [ebp - 0x120]
push si
lea esp, [esp]
push bx
mov word [esp + 1], di
push dword [esp + 2]
pop word [esp + 2]
jmp 0x5ca21d
add esp, 0
mov byte [esp], ch
stc
lea esp, [esp + 1]
add eax, ecx
pushal
pushfd
pop word [esp + 3]
mov word [esp + 0x19], bx
push word [esp + 0x14]
mov byte [esp + 0xe], ah
push dword [esp + 4]
pop dword [esp + 0xb]
lea esp, [esp + 0x17]
lea esp, [esp + 1]
lea esp, [esp + 0xc]
cmp esi, eax
jae 0x5ca021
mov eax, esi
call fcn.0057f1bd
mov edi, eax
mov dword [ebp + 0xc], edi
test edi, edi
je 0x55175d
sub edi, esi
push edi
pushal
mov bh, 0xc7
push bx
mov dl, 0x58
lea esp, [esp + 1]
lea esp, [esp + 1]
mov dword [esp + 0x14], esi
popal
lea ecx, [ebp - 0x120]
call fcn.0057f204
pushfd
not ecx
lea esp, [esp + 2]
mov cx, word [esp + 1]
bswap ecx
pop cx
mov ecx, dword [esp]
pushfd
push cx
push word [esp + 1]
push dword [esp + 3]
mov word [esp + 2], dx
pop word [esp + 4]
lea esp, [esp + 2]
jmp 0x5ca097
cmp esi, ebx
jne 0x5ca259
mov byte [ebp - 0xa], 0x42
mov byte [ebp - 0xb], 0x56
mov byte [ebp - 0xc], 0x56
mov byte [ebp - 0xd], 0x5e
mov byte [ebp - 0xe], 0x14
jmp 0x5ca719
mov byte [esp + 2], dh
pop word [esp]
lea esp, [esp + 3]
lea esp, [esp + 1]
push eax
mov byte [ebp + edi - 0x120], 0
call dword [0x55b840]
mov esi, eax
test esi, esi
jne 0x5ca1f7
call fcn.0057a97c
mov eax, dword [eax + 0x10]
push esi
push esi
lea ecx, [ebp - 0x120]
push ecx
call eax
mov esi, eax
jmp 0x5ca1f7
push eax
mov eax, ebp
lea eax, [eax + 0xc]
mov ecx, dword [eax]
pop eax
lea eax, [ecx + 1]
cmp byte [eax], 0x23
jne 0x5ca2ff
add ecx, 2
push ecx
jmp 0x5ca2d5
call fcn.005642ef
pop ecx
jmp 0x5ca2ff
pushal
pop word [esp]
pushal
mov dword [esp + 0x17], edx
pop word [esp + 0x33]
pop dword [esp + 0x32]
mov byte [esp + 9], bl
mov dword [esp + 0x34], eax
push sp
mov word [esp], si
mov byte [esp], bh
push word [esp + 1]
lea esp, [esp + 0x38]
pushfd
pushfd
pushal
mov word [esp + 5], bx
lea esp, [esp + 0x1d]
mov word [esp + 1], bp
lea esp, [esp]
mov dword [esp + 4], eax
push dword [esp + 9]
lea esp, [esp + 3]
mov dword [esp + 8], esi
pushal
pop dword [esp + 0x10]
pop dword [esp]
lea esp, [esp + 0x14]
mov byte [esp + 2], ch
push word [esp + 3]
lea esp, [esp + 2]
lea esp, [esp + 0xc]
call fcn.005517d2
jmp 0x5519c2
mov byte [ebp - 0x17], 0x5d
mov byte [ebp - 0x18], 0x77
xor ecx, ecx
lea eax, [ecx + ebp - 0x18]
mov dl, byte [eax]
sub dl, 3
xor dl, 0x3f
inc ecx
cmp ecx, 0xf
mov byte [eax], dl
jl 0x5ca5ff
lea eax, [ebp - 0x18]
push bx
mov byte [esp], dh
lea esp, [esp + 2]
push eax
call dword [0x55b840]
mov esi, eax
jmp 0x5ca259
mov byte [ebp - 0xf], 0x5d
mov byte [ebp - 0x10], 0x4f
mov byte [ebp - 0x11], 0x61
mov byte [ebp - 0x12], 0x80
mov byte [ebp - 0x13], 0x56
mov byte [ebp - 0x14], 0x5d
mov byte [ebp - 0x15], 0x54
mov byte [ebp - 0x16], 0x50
jmp 0x5ca5f5