Function at 0x56786b
Capabilities:
Encode data using xor

Disassembly:
mov dword [ebp + edx], ecx
lea eax, [edx + 0x76050c3c]
neg word [esp + edx + 2]
pop ecx
jge fcn.0052d0bf
call fcn.004bf5ac
call fcn.005616e2
rol dl, 0x64
jb 0x508ee4
xor eax, ebx
mov edx, 0x201b702a
movsx ecx, dl
add dl, 0x1c
dec eax
ror eax, 1
call fcn.004dad0d
lea ecx, [eax + eax*4 + 0x243732a6]
neg edx
rol cx, 0x6e
neg cx
jne 0x54424e
mov edx, 0xe3b75888
sub esi, 4
mov edx, dword [esi]
xor edx, ebx
mov ecx, 0xbd3c2915
movzx eax, cx
ror edx, 3
shl ax, 0xce
dec edx
not edx
xor eax, eax
dec edx
ror eax, 0x95
neg edx
inc ecx
or ax, ax
shl eax, cl
ror edx, 2
inc edx
jmp 0x4f9823
mov dword [ebp + eax - 0x1fb2411e], edx
mov edx, dword [edi + eax - 0x1fb24120]
xor edx, ebx
call fcn.0049976d
jmp 0x4e41bb
xor ebx, ecx
not al
rol dx, 0x2c
dec ax
adc esi, ecx
mov eax, dword [edi + edx - 0x63551b34]
mov ecx, edx
add edx, 0x3f3dcbaf
mov edx, dword [ecx + edi - 0x63551b30]
sub cx, 0x8fb0
mov cl, byte [edi + ecx - 0x63558b7c]
jne 0x43a70f
not dx
not ax
and cl, al
adc dx, 0x7232
pop eax
ror eax, 0xa6
mov dword [esp + ecx*2 - 0x44], eax
ror dx, 1
xadd dword [esp + ecx - 0x22], eax
inc dx
rol ax, cl
xor bx, dx
push ecx
or eax, 0x9b365199
lea esi, [esi + ecx*2 - 0x46]
mov word [esi + ecx - 0x22], dx
mov edx, eax
mov edx, dword [edi + ecx*2 - 0x44]
shl word [esp + ecx*8 - 0x10f], 0xa
ror eax, 0xce
lea edi, [edi + ecx*8 - 0x10c]
xor ecx, dword [esp + ecx*2 - 0x42]
ror ax, cl
add al, al
xor edx, ebx
call fcn.00552bc8
mov eax, dword [esi]
add esi, 4
mov edx, 0xe2bee00
xor eax, ebx
inc edx
rol dl, 0x84
inc eax
lea ecx, [edx + edx*4 + 0x1712bd1e]
lea edx, [ecx*8 - 0x104ce84b]
bswap eax
neg eax
rol eax, 1
ror dl, 0xa2
and dx, 0x2c
not eax
call fcn.00484422
lea esp, [esp + 0x18]
ret
mov edx, 0xce9f7f36
mov edx, dword [edi]
push 0xc504be8e
add edi, 4
xor edx, ebx
push 0xc5915285
call fcn.0052a55e
rol edx, 2
jmp 0x4f4e29
call fcn.004c5c22
mov ax, word [ebp]
mov edx, 0x4cb4f5b7
mov cl, byte [ebp + edx - 0x4cb4f5b5]
and edx, edx
lea edx, [edx + edx*4 + 0x373dbf10]
or dl, 0x2c
adc ebp, 2
call fcn.00513cea
xor ebx, edx
sar cl, 0x45
xadd cx, ax
adc edi, edx
mov ax, word [eax + ebp - 0x2900]
lea edx, [ecx + ecx*4 + 0x45275731]
add ebp, 2
sub esi, 1
or cx, cx
not dl
movzx ecx, byte [esi]
sal dl, 0xe3
or edx, edx
push edx
xor cl, bl
rol cl, 1
call fcn.0052984e
add cx, 0x1bb2
not al
cmovno cx, word [esp + ecx - 0x24283fc2]
lea ecx, [ecx + ecx*8 - 0x4559e58]
and word [esp + ecx - 0x4119b104], cx
ror al, 1
neg ecx
shr cl, 0x27
dec ecx
add al, 0x90
push ecx
xor bl, al
ror word [esp + 3], 0xb
call fcn.00439f13
dec ecx
lea eax, [edx*4 - 0x2770b0c5]
ror ecx, 1
bswap ecx
jmp 0x566887
add esi, ecx
xadd dword [esp + edx - 0x1805fd1], eax
mov dword [esp + edx - 0x1805fd1], esi
ret
bswap ecx
add dl, 0x14
xor word [esp + eax - 0x4658c7fc], dx
xor ebx, ecx
sal byte [esp + eax - 0x4658c7fc], 0x21
sal ax, 0xec
adc edi, ecx
mov dword [esp + eax - 0x4657fffc], edx
mov dword [esp + eax - 0x46580000], edi
ret 4
xor ebx, edx
not ax
add edi, edx
mov edx, dword [ebp + eax - 0xe4fb]
sal ax, 0xe
neg ecx
push ecx
lea ebp, [eax + ebp - 0xbff8]
sal eax, 0x54
not al
or dword [esp + eax*8 - 0x7f8], 0xab07ee80
mov al, byte [esi + eax - 0xfb]
adc esi, 5
xor al, bl
ror ecx, cl
adc al, 0xb6
or cl, cl
ror al, 1
and ecx, 0x67282531
jns 0x4fa021
mov eax, 0xb0254b9e
movzx ecx, word [edi]
lea edx, [eax + eax*2 + 0x2b835f98]
push edx
lea edi, [edi + edx - 0x3bf34270]
xor cx, bx
xadd dword [esp + edx - 0x3bf34272], edx
rol cx, 1
inc cx
rol cx, 1
and eax, 0x618f5a06
xor cx, 0xba13
xor bx, cx
shr byte [esp + eax*2 - 0x400a9409], 0xa3
shl dx, 0xa5
or eax, 0x48980c2c
lea ebp, [edx + ebp - 0x3bf34e42]
mov word [eax + ebp - 0x689d4e2e], cx
mov ecx, 0x58bc005
mov edx, dword [edi + edx*2 - 0x77e69c80]
bswap ecx
mov dword [esp + ecx - 0x5c08b05], ecx
lea edi, [edi + eax - 0x689d4e2a]
je 0x535aba
adc dword [esp + ecx*4 - 0x17022c14], eax
xor edx, ebx
neg ax
shl eax, cl
bswap edx
not edx
rol edx, 3
inc edx
xor ebx, edx
add esi, edx
pop edx
jmp fcn.0052d0bf
and dword [esp + edx], 0xdc978a8c
rol ecx, 2
xor ebx, ecx
xor edx, dword [esp + edx*4]
sbb edx, dword [esp]
lea ebp, [ebp + edx*4 - 4]
neg dl
jae 0x42c009
mov edx, dword [ebp]
mov ecx, 0x6eb82f1d
mov cl, byte [ebp + ecx - 0x6eb82f19]
mov eax, 0x1fb24120
shr edx, cl
movsx ecx, ax
and eax, eax
ja 0x4b5ce0
neg edx
shr ecx, cl
call fcn.004e9295
mov ecx, dword [ebp]
ror edx, 2
lea ebp, [edx + ebp - 0x2f0c76c4]
rol dx, 0x62
xor ecx, ebx
inc edx
je 0x4a266d
lea edx, [edx + edx*2 + 0x151d5327]
lea ecx, [ecx + edx - 0x303e9d59]
movsx eax, dl
sal eax, 0x19
bswap ecx
dec ecx
lea eax, [eax + edx*2 + 0x628a059a]
xadd edx, eax
bswap ecx
jo 0x4b7b56