Function at 0x56b855
Capabilities:
Encode data using xor

Disassembly:
pop dword [ebp - 4]
sub ebp, 4
pop dword [ebp - 4]
sub ebp, 4
sub ebp, 0x40
mov edi, ebp
mov ecx, 0x10
xor eax, eax
rep stosd dword es:[edi], eax
pop dword [ebp - 4]
sub ebp, 4
call 0x56b140
inc ebx
push eax
push ebp
xor al, byte [eax]
lea eax, [ebp + 0x44]
push dword [eax]
call fcn.005113c4
call 0x56b153
pop eax
dec ebp
dec esp
add byte [ebp + 0x30ff4445], cl
call fcn.005113c4
pop eax
pop ebx
or eax, ebx
or eax, eax
je 0x56b17d
push 0xffff0fff
pop eax
pop ebx
and eax, ebx
push eax
push 0x2000
pop eax
pop ebx
or eax, ebx
push eax
pop dword [ebp - 4]
sub ebp, 4
lea eax, [ebp + 0x48]
push dword [eax]
call fcn.0054170a
pop eax
or eax, eax
jne 0x56b198
add ebp, 0x50
jmp dword [ebp - 4]
pop dword [ebp - 4]
sub ebp, 4
push ebp
pop eax
push dword [eax]
lea eax, [ebp + 0x4c]
push dword [eax]
pop eax
add eax, 0xef4
push eax
call fcn.006e974e
adc byte [eax], al
pop eax
add eax, 2
push dword [eax]
pop eax
or eax, eax
je 0x56b1c6
add ebp, 0x54
jmp dword [ebp - 4]
lea eax, [ebp + 8]
push dword [eax]
pop eax
or eax, eax
je 0x56b23e
lea eax, [ebp + 0x4c]
push dword [eax]
pop eax
add eax, 0xecd
push dword [eax]
push 4
push 0x4d
call fcn.005a24a0
pop eax
or eax, eax
jne 0x56b1f5
add ebp, 0x54
jmp dword [ebp - 4]
lea eax, [ebp + 0x4c]
push dword [eax]
call fcn.0053fc02
pop eax
or eax, eax
setne al
movsx eax, al
dec eax
push eax
push ebp
pop eax
push dword [eax]
lea eax, [ebp + 0x4c]
push dword [eax]
pop eax
add eax, 0xef4
push eax
call fcn.006e974e
adc byte [eax], al
pop eax
add eax, 2
push dword [eax]
pop eax
pop ebx
or eax, ebx
or eax, eax
je 0x56b23e
call fcn.00566ed5
add ebp, 0x54
jmp dword [ebp - 4]
call fcn.006ec086
push eax
pop dword [ebp - 4]
sub ebp, 4
push 0
pop dword [ebp - 4]
sub ebp, 4
push 0
pop dword [ebp - 4]
sub ebp, 4
push 0
call fcn.0052b1db
push 0
call fcn.0052b1db
lea eax, [ebp + 0x28]
push dword [eax]
push 0xf000
pop eax
pop ebx
and eax, ebx
push eax
cmp dword [esp], 0x7000
jne 0x56b300
pop eax
push 0x590408
call fcn.0052b23b
lea eax, [ebp + 8]
pop dword [eax]
lea eax, [ebp + 0x70]
push dword [eax]
lea eax, [ebp + 8]
push dword [eax]
pop eax
add eax, 4
pop dword [eax]
lea eax, [ebp + 0x70]
push dword [eax]
call fcn.00540002
push 0x65
push 0x66
pop ebx
pop ecx
pop eax
cmp eax, ecx
jl 0x56b2bb
cmp ebx, eax
jl 0x56b2d2
lea eax, [ebp + 8]
push dword [eax]
pop eax
add eax, 0x18
push eax
push 0xffffffffffffffff
pop ebx
pop eax
push ebx
pop dword [eax]
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 8]
push dword [eax]
call fcn.0059086c
call fcn.006ec086
push eax
lea eax, [ebp + 0x1c]
pop dword [eax]
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 8]
push dword [eax]
call fcn.00590adb
jmp 0x56b4da
pop eax
push 0x551b49
call fcn.0052b23b
lea eax, [ebp + 0x14]
pop dword [eax]
lea eax, [ebp + 0x70]
push dword [eax]
lea eax, [ebp + 0x14]
push dword [eax]
pop eax
add eax, 4
pop dword [eax]
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00584b4e
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00585423
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00584cef
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00585800
call fcn.006ec086
push eax
lea eax, [ebp + 0x1c]
pop dword [eax]
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00586751
push 0x93
lea eax, [ebp + 0x70]
push dword [eax]
call fcn.0052ef74
pop eax
or eax, eax
jne 0x56b3a2
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x24]
push dword [eax]
push 0
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00586c8e
push 4
lea eax, [ebp + 0x18]
pop ebx
add dword [eax], ebx
call 0x56b3ab
push esp
push esp
pop ecx
add byte [ebp + 0x30ff7045], cl
call fcn.005113c4
pop eax
or eax, eax
je 0x56b3e6
lea eax, [ebp + 0x28]
push dword [eax]
push 0xffff0fff
pop eax
pop ebx
and eax, ebx
push eax
lea eax, [ebp + 0x24]
push dword [eax]
push 0
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00586c8e
push 4
lea eax, [ebp + 0x18]
pop ebx
add dword [eax], ebx
call 0x56b3f0
inc ebx
push eax
push ebp
xor al, byte [eax]
lea eax, [ebp + 0x70]
push dword [eax]
call fcn.005113c4
push 0x435ad3
pop eax
movzx eax, byte [eax]
push eax
lea eax, [ebp + 0x70]
push dword [eax]
call fcn.005a5f3c
push 8
pop eax
pop ebx
cmp ebx, eax
setne al
movsx eax, al
dec eax
pop ebx
and eax, ebx
pop ebx
or eax, ebx
push eax
push 0x435adc
pop eax
movzx eax, byte [eax]
pop ebx
and eax, ebx
or eax, eax
je 0x56b440
push 0x2000
jmp 0x56b4a5
call 0x56b449
pop eax
dec ebp
dec esp
add byte [ebp + 0x30ff7045], cl
call fcn.005113c4
push 0x435ae2
pop eax
movzx eax, byte [eax]
pop ebx
and eax, ebx
or eax, eax
je 0x56b471
push 0x5000
jmp 0x56b4a5
call 0x56b47b
inc ebx
push eax
push ebp
xor dword [eax], eax
lea eax, [ebp + 0x70]
push dword [eax]
call fcn.005113c4
push 0x435adb
pop eax
movzx eax, byte [eax]
pop ebx
and eax, ebx
or eax, eax
je 0x56b4a3
push 0x1000
jmp 0x56b4a5
push 0
pop eax
or eax, eax
je 0x56b4da
push eax
lea eax, [ebp + 0x28]
push dword [eax]
push 0xffff0fff
pop eax
pop ebx
and eax, ebx
pop ebx
or eax, ebx
push eax
lea eax, [ebp + 0x24]
push dword [eax]
push 1
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.00586c8e
push 0x10
lea eax, [ebp + 0x18]
pop ebx
add dword [eax], ebx
call fcn.006ec086
push eax
lea eax, [ebp + 0x1c]
push dword [eax]
pop ebx
pop eax
sub eax, ebx
push eax
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x81f
pop dword [eax]
push 0
pop dword [ebp - 4]
sub ebp, 4
lea eax, [ebp + 0x2c]
push dword [eax]
push 0xf000
pop eax
pop ebx
and eax, ebx
push eax
cmp dword [esp], 0x7000
jne 0x56b52a
pop eax
jmp 0x56b71a
pop eax
call fcn.006e9789
fadd dword [ecx]
push 0x435b2f
pop eax
movzx eax, byte [eax]
push eax
lea eax, [ebp + 0x84]
push dword [eax]
call fcn.0054174a
pop eax
pop ebx
and eax, ebx
or eax, eax
je 0x56b707
lea eax, [ebp + 0x84]
push dword [eax]
pop eax
add eax, 0xed1
movzx eax, word [eax]
push eax
push 0x43d954
pop eax
push dword [eax]
call fcn.0053912b
add byte [eax], ah
pop dword [ebp - 4]
sub ebp, 4
lea eax, [ebp + 0x88]
push dword [eax]
pop eax
add eax, 0xed1
movzx eax, word [eax]
push eax
push 0x43d954
pop eax
push dword [eax]
call fcn.0053912b
add byte [ebx], ch
pop dword [ebp - 4]
sub ebp, 4
push 0x435ad4
pop eax
movzx eax, byte [eax]
or eax, eax
je 0x56b5e9
lea eax, [ebp + 4]
push dword [eax]
push 0x24
pop eax
pop ebx
and eax, ebx
push eax
lea eax, [ebp + 0x8c]
push dword [eax]
call fcn.0052ef9b
dec esi
pop eax
pop ebx
or eax, ebx
or eax, eax
je 0x56b5e9
lea eax, [ebp + 4]
push dword [eax]
lea eax, [ebp + 0x30]
push dword [eax]
call int.00587427
push 0x435ada
pop eax
movzx eax, byte [eax]
or eax, eax
je 0x56b617
lea eax, [ebp + 4]
push dword [eax]
push 2
pop eax
pop ebx
and eax, ebx
or eax, eax
je 0x56b617
lea eax, [ebp + 0x30]
push dword [eax]
call fcn.00587182
push 0x435add
pop eax
movzx eax, byte [eax]
or eax, eax
je 0x56b644
push ebp
pop eax
push dword [eax]
push 1
pop eax
pop ebx
and eax, ebx
or eax, eax
je 0x56b644
lea eax, [ebp + 0x30]
push dword [eax]
call fcn.00587751
push 0x435acf
pop eax
movzx eax, byte [eax]
or eax, eax
je 0x56b671
push ebp
pop eax
push dword [eax]
push 2
pop eax
pop ebx
and eax, ebx
or eax, eax
je 0x56b671
lea eax, [ebp + 0x30]
push dword [eax]
call fcn.00552959
push 0x435ae2
pop eax
movzx eax, byte [eax]
or eax, eax
je 0x56b69e
push ebp
pop eax
push dword [eax]
push 4
pop eax
pop ebx
and eax, ebx
or eax, eax
je 0x56b69e
lea eax, [ebp + 0x30]
push dword [eax]
call fcn.00588914
push 0x435ada
pop eax
movzx eax, byte [eax]
or eax, eax
je 0x56b6e7
lea eax, [ebp + 4]
push dword [eax]
push 1
pop eax
pop ebx
and eax, ebx
push eax
lea eax, [ebp + 0x8c]
push dword [eax]
call fcn.0052ef9b
dec edi
pop eax
pop ebx
or eax, ebx
or eax, eax
je 0x56b6e7
lea eax, [ebp + 0x40]
push dword [eax]
lea eax, [ebp + 0x8c]
push dword [eax]
call fcn.005a645f
push ebp
pop eax
push dword [eax]
push 8
pop eax
pop ebx
and eax, ebx
or eax, eax
je 0x56b704
lea eax, [ebp + 0x18]
push eax
push 0xffffffffffffffff
pop ebx
pop eax
push ebx
pop dword [eax]
add ebp, 8
add ebp, 4
xor eax, eax
push eax
mov eax, dword [ebp]
mov dword fs:[0], eax
add ebp, 0xc
pop eax
call fcn.004fb2f6
lea eax, [ebp + 0x74]
push dword [eax]
call fcn.0053fc02
pop eax
or eax, eax
je 0x56b83a
mov edx, dword [0x4013e4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edx*4]
add eax, 0x56a
movzx eax, word [eax]
push eax
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xef4
push eax
call fcn.006e974e
adc byte [eax], al
pop eax
add eax, 0xa
pop ebx
mov word [eax], bx
call fcn.0052d39c
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xef4
push eax
call fcn.006e974e
adc byte [eax], al
pop eax
add eax, 2
pop dword [eax]
lea eax, [ebp + 0x28]
push dword [eax]
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xef4
push eax
call fcn.006e974e
adc byte [eax], al
pop eax
add eax, 1
push eax
movzx eax, byte [eax]
push eax
lea eax, [ebp + 0x1c]
push dword [eax]
pop eax
pop ebx
or eax, ebx
xchg ebx, eax
pop eax
push ebx
pop ebx
mov byte [eax], bl
call fcn.006ec086
push eax
lea eax, [ebp + 0x24]
push dword [eax]
pop ebx
pop eax
sub eax, ebx
push eax
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xedf
pop ebx
mov word [eax], bx
push 1
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xeda
pop ebx
add byte [eax], bl
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xed9
movzx eax, byte [eax]
push eax
push 0x4d
pop eax
pop ebx
cmp ebx, eax
jne 0x56b830
push 0x3d
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xed9
pop ebx
mov byte [eax], bl
lea eax, [ebp + 0x74]
push dword [eax]
call fcn.0053fcfd
lea eax, [ebp + 0x74]
push dword [eax]
call fcn.0056983b
jmp 0x56b83a
lea eax, [ebp + 0x74]
push dword [eax]
call fcn.0053fcfd
push 0x435ad3
pop eax
movzx eax, byte [eax]
push eax
push 0x435adc
pop eax
movzx eax, byte [eax]
pop ebx
and eax, ebx
or eax, eax
je 0x56b8aa
lea eax, [ebp + 0x74]
push dword [eax]
call fcn.005a5f3c
push 8
pop eax
pop ebx
cmp ebx, eax
jne 0x56b8aa
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xed1
movzx eax, word [eax]
push eax
push 0x43d954
pop eax
push dword [eax]
call fcn.0053912b
add ah, byte [esi]
pop eax
or eax, eax
je 0x56b8aa
push eax
lea eax, [ebp + 0x74]
push dword [eax]
pop eax
add eax, 0xecd
push dword [eax]
push 4
call fcn.005a33fe
lea eax, [ebp + 0x30]
push dword [eax]
pop eax
or eax, eax
je 0x56b8bd
call fcn.00566ed5
call fcn.004fb31e
push ebp
pop eax
push dword [eax]
pop eax
or eax, eax
je 0x56b8d9
lea eax, [ebp + 0x74]
push dword [eax]
call fcn.005a6664
lea eax, [ebp + 0x7c]
call fcn.006d228e
jmp dword [ebp - 4]