Function at 0x4c2da0
Capabilities:
Encode data using xor
Hash data using fnv
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5bf46b
mov eax, dword fs:[0]
push eax
sub esp, 0x260
mov eax, dword [0x61f138]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov ebx, ecx
mov eax, dword [ebp + 8]
mov ecx, esi
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0xf
mov byte [ebp - 0xa4], 0
lea edx, [ecx + 1]
jmp 0x4c2e00
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2e00
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0xa4]
call fcn.004462c0
mov ecx, esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2e34
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x5c]
call fcn.004462c0
sub esp, 8
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa4]
call fcn.004c4250
mov dword [ebp - 0x10c], eax
cmp eax, 0xffffffff
je 0x4c2ee9
cmp dword [ebp - 0x90], 0x10
lea edi, [ebp - 0xa4]
mov ecx, dword [ebp - 0x10c]
lea esi, [ebp - 0xa4]
cmovae edi, dword [ebp - 0xa4]
cmovae esi, dword [ebp - 0xa4]
add ecx, 7
mov eax, dword [ebp - 0x94]
add ecx, esi
add eax, edi
mov byte [ebp - 0x44], 0
xor esi, esi
mov edi, 0xf
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], edi
cmp ecx, eax
je 0x4c2ec3
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x44]
call fcn.004462c0
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
lea ecx, [ebp - 0x5c]
call fcn.004414e0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], edi
sub esp, 8
lea ecx, [ebp - 0x1bc]
call fcn.00443510
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push ecx
mov edx, 0x5f3d98
lea ecx, [ebp - 0x1ac]
call fcn.00449a40
add esp, 4
mov ecx, eax
call fcn.00456240
mov edx, 0x5f3d54
mov ecx, eax
call fcn.00449a40
cmp dword [ebp - 0x48], 0x10
lea edx, [ebp - 0x5c]
push dword [ebp - 0x4c]
cmovae edx, dword [ebp - 0x5c]
mov ecx, eax
call fcn.0044d730
add esp, 4
mov edx, 0x5edf78
push dword [ebp - 0x108]
push ecx
mov ecx, eax
call fcn.00449a40
add esp, 4
mov ecx, eax
call fcn.00443c10
mov edx, 0x5f3d58
mov ecx, eax
call fcn.00449a40
cmp dword [ebx + 0x14], 0x10
mov eax, dword [ebx + 0x10]
jb 0x4c2f75
mov ebx, dword [ebx]
push eax
mov edx, ebx
lea ecx, [ebp - 0x1ac]
call fcn.0044d730
add esp, 4
push eax
call fcn.00496880
push ecx
lea ecx, [ebp - 0x26c]
call fcn.00443510
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 3
call fcn.004c62f0
mov byte [ebp - 4], 4
lea edx, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 8
lea ebx, [ebp - 0xd4]
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0x8c]
cmovae edx, dword [ebp - 0xd4]
cmovae ebx, dword [ebp - 0xd4]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
lea esi, [edx + eax*2]
mov byte [ebp - 0x8c], 0
mov eax, esi
sub eax, ebx
sar eax, 1
push eax
call fcn.00464880
push dword [ebp - 0x108]
lea ecx, [ebp - 0x8c]
push esi
push ebx
call fcn.00497cf0
lea eax, [ebp - 0xbc]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004433d0
mov esi, eax
mov byte [ebp - 4], 6
lea edx, [ebp - 0x8c]
cmp dword [ebp - 0x78], 0x10
lea ecx, [ebp - 0x25c]
push dword [ebp - 0x7c]
cmovae edx, dword [ebp - 0x8c]
call fcn.0044d730
mov ecx, dword [esi + 0x10]
add esp, 4
cmp dword [esi + 0x14], 0x10
jb 0x4c3058
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.0044d730
mov byte [ebp - 4], 5
add esp, 4
mov edx, dword [ebp - 0xa8]
cmp edx, 0x10
jb 0x4c30a3
mov ecx, dword [ebp - 0xbc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c3099
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3719
push edx
push ecx
call fcn.0056eec5
add esp, 8
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x26c]
call fcn.004433d0
mov byte [ebp - 4], 7
push 0x6d3598
mov dword [ebp - 0x10c], 0x6d3598
call fcn.0055d042
add esp, 4
test eax, eax
je 0x4c30da
push eax
call fcn.0055ca85
add esp, 4
mov byte [ebp - 4], 8
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6d6718]
cmp eax, dword [ecx + 4]
jg 0x4c371e
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004433d0
mov edx, eax
cmp dword [edx + 0x14], 0x10
mov esi, dword [edx + 0x10]
jb 0x4c3116
mov edx, dword [edx]
xor ecx, ecx
mov ebx, 0x811c9dc5
test esi, esi
je 0x4c3132
movzx eax, byte [ecx + edx]
inc ecx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp ecx, esi
jb 0x4c3121
mov edx, dword [ebp - 0xa8]
cmp edx, 0x10
jb 0x4c316c
mov ecx, dword [ebp - 0xbc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c3162
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3772
push edx
push ecx
call fcn.0056eec5
add esp, 8
cmp dword [0x6d640c], ebx
jne 0x4c317f
inc dword [0x6aaffc]
jmp 0x4c34be
mov eax, dword [0x6aaffc]
cmp eax, 2
jle 0x4c3513
lea edx, [eax - 2]
lea ecx, [ebp - 0x104]
call fcn.0045ec80
mov esi, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x74]
push 0xc
push 0x5f3d74
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
call fcn.004462c0
push esi
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xbc]
call fcn.00464ba0
add esp, 4
mov edi, eax
mov byte [ebp - 4], 0xc
mov edx, dword [edi + 0x14]
mov eax, edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, 0x10
jb 0x4c3215
lea eax, [ecx + 0x10]
mov dword [edi + 0x10], eax
mov eax, edi
cmp edx, 0x10
jb 0x4c31fc
mov eax, dword [edi]
push 0x10
lea esi, [eax + ecx]
push 0x5f3d84
push esi
call fcn.00586a50
add esp, 0xc
mov byte [esi + 0x10], 0
jmp 0x4c3234
push 0x10
push 0x5f3d84
mov byte [ebp - 0x108], 0
mov ecx, edi
push dword [ebp - 0x108]
push 0x10
call fcn.0044b7a0
mov edi, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov ecx, dword [edi]
mov dword [ebp - 0x44], ecx
mov ecx, dword [edi + 4]
mov dword [ebp - 0x40], ecx
mov ecx, dword [edi + 8]
mov dword [ebp - 0x3c], ecx
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x30], eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
push 0x6d671c
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xec]
call fcn.00496750
add esp, 4
lea ecx, [ebp - 0x2c]
push eax
call fcn.004483b0
mov edx, dword [ebp - 0xd8]
cmp edx, 0x10
jb 0x4c32d3
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c32c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3777
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
cmp edx, 0x10
jb 0x4c3326
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c331c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c377c
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
cmp edx, 0x10
jb 0x4c3376
mov ecx, dword [ebp - 0xbc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c336c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3781
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0xf
mov byte [ebp - 0xbc], 0
cmp edx, 0x10
jb 0x4c33c9
mov ecx, dword [ebp - 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c33bf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3786
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0xf0]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
cmp edx, 0x10
jb 0x4c3419
mov ecx, dword [ebp - 0x104]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c340f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c378b
push edx
push ecx
call fcn.0056eec5
add esp, 8
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
push dword [ebp - 0x1c]
cmovae eax, dword [ebp - 0x2c]
mov ecx, 0x6d671c
push eax
call fcn.004462c0
mov dword [0x6aaffc], 1
mov dword [0x6d640c], ebx
call fcn.004c2bf0
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x2c]
mov edi, eax
cmovae ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x18], 0x10
lea edx, [ebp - 0x2c]
push dword [ebp - 0x1c]
cmovae edx, dword [ebp - 0x2c]
mov ecx, 0x6c4b98
call fcn.0044d730
add esp, 4
push 0x5f3d6c
push edi
call fcn.0059a65c
add esp, 8
test eax, eax
je 0x4c34be
mov edx, edi
mov ecx, eax
call fcn.004c2cf0
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x2c]
mov esi, eax
cmovae ecx, dword [ebp - 0x2c]
push ecx
push esi
call fcn.004c2a90
push esi
call fcn.00598ab6
add esp, 0xc
push esi
call fcn.005995d3
add esp, 4
mov ecx, edi
call fcn.004c2ae0
push 0x6d3598
mov byte [ebp - 4], 0xf
call fcn.0055d067
add esp, 4
test eax, eax
je 0x4c34dc
push eax
call fcn.0055ca85
add esp, 4
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x4c35ac
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c35a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3790
jmp 0x4c35a2
jne 0x4c3419
lea eax, [ebp - 0x2c]
mov edx, 0x6d671c
push eax
lea ecx, [ebp - 0x74]
call fcn.0046c720
add esp, 4
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
mov ecx, 0x6d671c
push dword [ebp - 0x1c]
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.004462c0
cmp dword [ebp - 0x60], 0x10
lea eax, [ebp - 0x74]
push dword [ebp - 0x64]
cmovae eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x2c]
push eax
call fcn.004462c0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x60]
cmp edx, 0x10
jb 0x4c3432
mov ecx, dword [ebp - 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c3593
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c3795
push edx
push ecx
call fcn.0056eec5
add esp, 8
jmp 0x4c3432
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp edx, 0x10
jb 0x4c35f5
mov ecx, dword [ebp - 0x8c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c35eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c379a
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
cmp edx, 8
jb 0x4c364a
mov ecx, dword [ebp - 0xd4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c3640
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c379f
push edx
push ecx
call fcn.0056eec5
add esp, 8
xor eax, eax
mov dword [ebp - 0xc4], 0
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0xc0], 7
mov word [ebp - 0xd4], ax
call fcn.0043aef0
lea ecx, [ebp - 0x1bc]
call fcn.0043aef0
mov edx, dword [ebp - 0x48]
cmp edx, 0x10
jb 0x4c36b1
mov ecx, dword [ebp - 0x5c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c36a7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c37a4
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
cmp edx, 0x10
jb 0x4c36fd
mov ecx, dword [ebp - 0xa4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c36f3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c37a9
push edx
push ecx
call fcn.0056eec5
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0056eeb4
mov esp, ebp
pop ebp
ret
call fcn.00591dc6
push 0x6d6718
call fcn.0056f0e8
add esp, 4
cmp dword [0x6d6718], 0xffffffff
jne 0x4c30f7
push 0x5cab00
mov dword [0x6d672c], 0
mov dword [0x6d6730], 0xf
mov byte [0x6d671c], 0
call fcn.0056f444
add esp, 4
push 0x6d6718
call fcn.0056f09e
add esp, 4
jmp 0x4c30f7
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
call fcn.00591dc6
int3