Function at 0x56cc78
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x2d
push 0
push 0
dec ecx
jne 0x56cc81
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004051e0
mov eax, dword [ebp - 8]
call fcn.004051e0
mov eax, dword [ebp - 0xc]
call fcn.004051e0
xor eax, eax
push ebp
push 0x56d7ee
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5a5984]
mov byte [eax], 1
xor edi, edi
xor esi, esi
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 4]
call fcn.00404ff0
test eax, eax
je 0x56ccf1
mov eax, dword [ebp - 8]
call fcn.00404ff0
test eax, eax
je 0x56ccf1
mov eax, dword [ebp - 0xc]
call fcn.00404ff0
test eax, eax
jne 0x56ccfa
mov byte [ebp - 0xd], 0
jmp 0x56d7b6
mov eax, dword [ebp - 4]
call fcn.00404ff0
cmp eax, 0xd
jne 0x56cd2e
mov eax, dword [ebp - 8]
call fcn.00404ff0
cmp eax, 4
jl 0x56cd2e
mov eax, dword [ebp - 8]
call fcn.00404ff0
cmp eax, 0x14
jg 0x56cd2e
mov eax, dword [ebp - 0xc]
call fcn.00404ff0
cmp eax, 0x1d
je 0x56cd37
mov byte [ebp - 0xd], 0
jmp 0x56d7b6
mov ebx, 0xd
mov eax, ebx
and eax, 0x80000001
jns 0x56cd4a
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x56cd78
lea eax, [ebp - 0x40]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0043e470
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.0056b78c
mov eax, dword [ebp - 0x3c]
call fcn.00409b50
add edi, eax
jmp 0x56cda0
lea eax, [ebp - 0x48]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0043e470
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x44]
call fcn.0056b78c
mov eax, dword [ebp - 0x44]
call fcn.00409b50
add esi, eax
dec ebx
cmp ebx, 1
jge 0x56cd3c
lea edx, [ebp - 0x4c]
mov eax, edi
imul eax, esi
call fcn.004099e4
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x18]
mov edx, 5
call fcn.0056b6fc
mov eax, dword [ebp - 8]
call fcn.004051f0
mov edx, 0x56d800
call fcn.004d923c
xor esi, esi
mov eax, dword [0x5a6094]
mov eax, dword [eax]
call fcn.00404ff0
mov edi, eax
test edi, edi
jle 0x56ce1e
mov ebx, 1
lea eax, [ebp - 0x54]
push eax
mov eax, dword [0x5a6094]
mov eax, dword [eax]
mov ecx, 1
mov edx, ebx
call fcn.0043e470
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x50]
call fcn.0056b78c
mov eax, dword [ebp - 0x50]
call fcn.00409b50
add esi, eax
inc ebx
dec edi
jne 0x56cdee
lea edx, [ebp - 0x58]
mov eax, esi
call fcn.004099e4
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x1c]
mov edx, 5
call fcn.0056b6fc
lea ecx, [ebp - 0x5c]
mov edx, 4
mov eax, dword [ebp - 0x1c]
call fcn.0056b6fc
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x14]
call fcn.0056d938
lea edx, [ebp - 0x60]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0x60]
call fcn.00409b50
mov dword [ebp - 0x30], eax
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x6c]
mov edx, 1
call fcn.0043e430
mov eax, dword [ebp - 0x6c]
call fcn.00409b50
mov edx, eax
add edx, 0x41
lea eax, [ebp - 0x68]
call fcn.00404f18
lea eax, [ebp - 0x68]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov edx, dword [ebp - 0x74]
pop eax
call fcn.00404ff8
mov eax, dword [ebp - 0x68]
lea edx, [ebp - 0x64]
call fcn.0056d938
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 0x14]
call fcn.00404dc8
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x7c]
mov edx, 1
call fcn.0043e44c
mov eax, dword [ebp - 0x7c]
call fcn.00409b50
add eax, 0x41
lea edx, [ebp - 0x78]
call fcn.004099e4
lea eax, [ebp - 0x78]
push eax
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x30]
call fcn.004099e4
mov edx, dword [ebp - 0x84]
pop eax
call fcn.00404ff8
mov eax, dword [ebp - 0x78]
call fcn.00409b50
mov dword [ebp - 0x30], eax
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 0x30]
call fcn.004099e4
mov eax, dword [ebp - 0x88]
lea edx, [ebp - 0x24]
call fcn.0056d938
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edx, 0x56d818
call fcn.004d923c
lea eax, [ebp - 0x34]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
lea ecx, [ebp - 0x90]
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.0043e430
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.0056d938
mov eax, dword [ebp - 0x8c]
call fcn.004051f0
mov edx, 0x56d818
call fcn.004d923c
lea eax, [ebp - 0x38]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
call fcn.0040513c
je 0x56cfbb
mov byte [ebp - 0xd], 0
jmp 0x56d7b6
lea eax, [ebp - 0x20]
call fcn.00404d30
mov ebx, 1
lea eax, [ebp - 0x9c]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 0x18]
call fcn.0043e470
mov eax, dword [ebp - 0x9c]
lea edx, [ebp - 0x98]
call fcn.0056b78c
mov eax, dword [ebp - 0x98]
call fcn.00409b50
mov esi, eax
lea eax, [ebp - 0xa4]
push eax
lea edx, [ebx + 1]
mov ecx, 1
mov eax, dword [ebp - 0x18]
call fcn.0043e470
mov eax, dword [ebp - 0xa4]
lea edx, [ebp - 0xa0]
call fcn.0056b78c
mov eax, dword [ebp - 0xa0]
call fcn.00409b50
add esi, eax
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov eax, edx
lea edx, [ebp - 0x94]
call fcn.004099e4
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 0x20]
call fcn.00404ff8
inc ebx
cmp ebx, 5
jne 0x56cfc8
xor esi, esi
mov ebx, 1
lea eax, [ebp - 0xac]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 0x20]
call fcn.0043e470
mov eax, dword [ebp - 0xac]
lea edx, [ebp - 0xa8]
call fcn.0056b78c
mov eax, dword [ebp - 0xa8]
call fcn.00409b50
add esi, eax
inc ebx
cmp ebx, 5
jne 0x56d067
lea eax, [ebp - 0xb4]
push eax
mov ecx, 1
mov edx, 2
mov eax, dword [ebp - 0x1c]
call fcn.0043e470
mov eax, dword [ebp - 0xb4]
lea edx, [ebp - 0xb0]
call fcn.0056b78c
mov eax, dword [ebp - 0xb0]
call fcn.00409b50
add esi, eax
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov eax, edx
lea edx, [ebp - 0xc0]
call fcn.004099e4
mov ecx, dword [ebp - 0xc0]
lea eax, [ebp - 0xbc]
mov edx, dword [ebp - 0x20]
call fcn.0040503c
mov eax, dword [ebp - 0xbc]
lea edx, [ebp - 0xb8]
call fcn.0056d938
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0x20]
call fcn.00404dc8
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x20]
call fcn.00404dc8
lea edx, [ebp - 0xc4]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0xc4]
call fcn.00409b50
add dword [ebp - 0x30], eax
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x14]
call fcn.00404dc8
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edx, 0x56d82c
call fcn.004d923c
lea eax, [ebp - 0x34]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
lea eax, [ebp - 0xcc]
push eax
mov ecx, 5
mov edx, 7
mov eax, dword [ebp - 0xc]
call fcn.0043e470
mov eax, dword [ebp - 0xcc]
lea edx, [ebp - 0xc8]
call fcn.0056d938
mov eax, dword [ebp - 0xc8]
call fcn.004051f0
mov edx, 0x56d82c
call fcn.004d923c
lea eax, [ebp - 0x38]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
call fcn.0040513c
je 0x56d1db
mov byte [ebp - 0xd], 0
jmp 0x56d7b6
lea eax, [ebp - 0x20]
call fcn.00404d30
mov ebx, 1
lea eax, [ebp - 0xd8]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 0x18]
call fcn.0043e470
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xd4]
call fcn.0056b78c
mov eax, dword [ebp - 0xd4]
call fcn.00409b50
push eax
lea eax, [ebp - 0xe0]
push eax
lea edx, [ebx + 1]
mov ecx, 1
mov eax, dword [ebp - 0x18]
call fcn.0043e470
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0xdc]
call fcn.0056b78c
mov eax, dword [ebp - 0xdc]
call fcn.00409b50
pop edx
xchg edx, eax
sub eax, edx
cdq
xor eax, edx
sub eax, edx
lea edx, [ebp - 0xd0]
call fcn.004099e4
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0x20]
call fcn.00404ff8
inc ebx
cmp ebx, 5
jne 0x56d1e8
mov esi, 1
mov ebx, 1
lea eax, [ebp - 0xe4]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 0x20]
call fcn.0043e470
mov eax, dword [ebp - 0xe4]
call fcn.00409b50
test eax, eax
je 0x56d2df
lea eax, [ebp - 0xec]
push eax
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 0x20]
call fcn.0043e470
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0xe8]
call fcn.0056b78c
mov eax, dword [ebp - 0xe8]
call fcn.00409b50
imul esi
mov esi, eax
inc ebx
cmp ebx, 5
jne 0x56d284
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov eax, edx
lea edx, [ebp - 0xf4]
call fcn.004099e4
lea eax, [ebp - 0xf4]
mov edx, dword [ebp - 0x20]
call fcn.00404ff8
mov eax, dword [ebp - 0xf4]
lea edx, [ebp - 0xf0]
call fcn.0056d938
mov edx, dword [ebp - 0xf0]
lea eax, [ebp - 0x20]
call fcn.00404dc8
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x20]
call fcn.00404dc8
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
call fcn.00404dc8
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0xf8]
call fcn.00409b50
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edx, 0x56d840
call fcn.004d923c
lea eax, [ebp - 0x34]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
lea eax, [ebp - 0x100]
push eax
mov ecx, 5
mov edx, 0xd
mov eax, dword [ebp - 0xc]
call fcn.0043e470
mov eax, dword [ebp - 0x100]
lea edx, [ebp - 0xfc]
call fcn.0056d938
mov eax, dword [ebp - 0xfc]
call fcn.004051f0
mov edx, 0x56d840
call fcn.004d923c
lea eax, [ebp - 0x38]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
call fcn.0040513c
je 0x56d3e2
mov byte [ebp - 0xd], 0
jmp 0x56d7b6
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 0x30]
call fcn.004099e4
mov eax, dword [ebp - 0x108]
lea ecx, [ebp - 0x104]
mov edx, 5
call fcn.0056b6fc
mov eax, dword [ebp - 0x104]
lea edx, [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edx, 0x56d854
call fcn.004d923c
lea eax, [ebp - 0x34]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
lea eax, [ebp - 0x110]
push eax
mov ecx, 5
mov edx, 0x13
mov eax, dword [ebp - 0xc]
call fcn.0043e470
mov eax, dword [ebp - 0x110]
lea edx, [ebp - 0x10c]
call fcn.0056d938
mov eax, dword [ebp - 0x10c]
call fcn.004051f0
mov edx, 0x56d854
call fcn.004d923c
lea eax, [ebp - 0x38]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
call fcn.0040513c
je 0x56d49b
mov byte [ebp - 0xd], 0
jmp 0x56d7b6
xor esi, esi
mov ebx, 1
lea eax, [ebp - 0x114]
push eax
lea edx, [ebp - 0x118]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0x118]
mov ecx, 1
mov edx, ebx
call fcn.0043e470
mov eax, dword [ebp - 0x114]
call fcn.00409b50
add esi, eax
inc ebx
cmp ebx, 6
jne 0x56d4a2
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov esi, edx
lea edx, [ebp - 0x20]
mov eax, esi
call fcn.004099e4
xor esi, esi
mov ebx, 1
lea eax, [ebp - 0x11c]
push eax
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x24]
call fcn.0056d938
mov eax, dword [ebp - 0x120]
mov ecx, 1
mov edx, ebx
call fcn.0043e470
mov eax, dword [ebp - 0x11c]
call fcn.00409b50
add esi, eax
inc ebx
cmp ebx, 7
jne 0x56d4f9
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov esi, edx
lea edx, [ebp - 0x124]
mov eax, esi
call fcn.004099e4
mov eax, dword [ebp - 0x124]
lea edx, [ebp - 0x14]
call fcn.0056d938
xor esi, esi
mov ebx, 1
lea eax, [ebp - 0x128]
push eax
lea edx, [ebp - 0x12c]
mov eax, dword [ebp - 0x28]
call fcn.0056d938
mov eax, dword [ebp - 0x12c]
mov ecx, 1
mov edx, ebx
call fcn.0043e470
mov eax, dword [ebp - 0x128]
call fcn.00409b50
add esi, eax
inc ebx
cmp ebx, 6
jne 0x56d561
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov esi, edx
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
lea eax, [ebp - 0x134]
push eax
lea edx, [ebp - 0x138]
mov eax, esi
call fcn.004099e4
mov edx, dword [ebp - 0x138]
pop eax
call fcn.00404ff8
mov eax, dword [ebp - 0x134]
lea edx, [ebp - 0x130]
call fcn.0056d938
mov edx, dword [ebp - 0x130]
lea eax, [ebp - 0x14]
call fcn.00404dc8
xor esi, esi
mov ebx, 1
lea eax, [ebp - 0x13c]
push eax
lea edx, [ebp - 0x140]
mov eax, dword [ebp - 0x2c]
call fcn.0056d938
mov eax, dword [ebp - 0x140]
mov ecx, 1
mov edx, ebx
call fcn.0043e470
mov eax, dword [ebp - 0x13c]
call fcn.00409b50
add esi, eax
inc ebx
cmp ebx, 6
jne 0x56d5fb
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov esi, edx
lea edx, [ebp - 0x14c]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
push dword [ebp - 0x14c]
lea edx, [ebp - 0x150]
mov eax, esi
call fcn.004099e4
push dword [ebp - 0x150]
push dword [ebp - 0x20]
lea eax, [ebp - 0x148]
mov edx, 3
call fcn.004050b0
mov eax, dword [ebp - 0x148]
lea edx, [ebp - 0x144]
call fcn.0056d938
mov edx, dword [ebp - 0x144]
lea eax, [ebp - 0x14]
call fcn.00404dc8
xor esi, esi
mov ebx, 1
lea eax, [ebp - 0x154]
push eax
lea edx, [ebp - 0x158]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
mov eax, dword [ebp - 0x158]
mov ecx, 1
mov edx, ebx
call fcn.0043e470
mov eax, dword [ebp - 0x154]
call fcn.00409b50
add esi, eax
inc ebx
cmp ebx, 5
jne 0x56d6a1
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
mov esi, edx
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0x14]
call fcn.0056d938
lea eax, [ebp - 0x160]
push eax
lea edx, [ebp - 0x164]
mov eax, esi
call fcn.004099e4
mov edx, dword [ebp - 0x164]
pop eax
call fcn.00404ff8
mov eax, dword [ebp - 0x160]
lea edx, [ebp - 0x15c]
call fcn.0056d938
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 0x14]
call fcn.00404dc8
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edx, 0x56d868
call fcn.004d923c
lea eax, [ebp - 0x34]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
lea eax, [ebp - 0x16c]
push eax
mov ecx, 5
mov edx, 0x19
mov eax, dword [ebp - 0xc]
call fcn.0043e470
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x168]
call fcn.0056d938
mov eax, dword [ebp - 0x168]
call fcn.004051f0
mov edx, 0x56d868
call fcn.004d923c
lea eax, [ebp - 0x38]
mov edx, dword [0x5a6094]
mov edx, dword [edx]
call fcn.00404dc8
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
call fcn.0040513c
je 0x56d7b6
mov byte [ebp - 0xd], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56d7f5
lea eax, [ebp - 0x16c]
mov edx, 0x4f
call fcn.00404d54
lea eax, [ebp - 0x2c]
mov edx, 7
call fcn.00404d54
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404d54
ret