Function at 0x62f04c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x34
push 0
push 0
dec ecx
jne 0x62f054
push ebx
xor eax, eax
push ebp
push 0x62f5cf
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
lea eax, [ebp - 0x188]
call fcn.00635ec0
mov edx, dword [ebp - 0x188]
mov eax, 0x1b3e57c
call fcn.00404b38
mov eax, dword [0x1b3e57c]
mov edx, 0x62f5e8
call fcn.00404f00
je 0x62f5a4
lea eax, [ebp - 0x18c]
mov ecx, dword [0x1b3e57c]
mov edx, 0x62f5f8
call fcn.00404e00
mov edx, dword [ebp - 0x18c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
call fcn.00594490
dec eax
je 0x62f0d6
dec eax
je 0x62f0ec
dec eax
je 0x62f102
jmp 0x62f118
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f610
call fcn.0052fa8c
jmp 0x62f5a4
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f634
call fcn.0052fa8c
jmp 0x62f5a4
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f658
call fcn.0052fa8c
jmp 0x62f5a4
mov eax, 0x1b3e59c
mov edx, dword [0x669224]
mov edx, dword [edx + 4]
call fcn.00404b38
mov eax, 0x1b3e598
mov edx, dword [0x669224]
mov edx, dword [edx]
call fcn.00404b38
mov eax, 0x1b3e594
mov edx, dword [0x669224]
mov edx, dword [edx + 8]
call fcn.00404b38
lea eax, [ebp - 0x1c]
mov edx, 0x62f688
call fcn.00404b7c
lea eax, [ebp - 0x20]
mov edx, 0x62f6b4
call fcn.00404b7c
lea eax, [ebp - 0x56]
xor ecx, ecx
mov edx, 0x32
call fcn.00403224
lea edx, [ebp - 0x56]
mov eax, dword [ebp - 0x20]
call fcn.0049b78c
lea edx, [ebp - 0x47]
mov eax, dword [ebp - 0x1c]
call fcn.0049b78c
lea eax, [ebp - 0x18]
mov edx, 0x10
call fcn.00405140
lea eax, [ebp - 0x18]
call fcn.0040500c
mov ecx, eax
lea eax, [ebp - 0x56]
mov edx, 0x1e
call fcn.0049d79c
lea eax, [ebp - 0x18]
call fcn.0040500c
mov byte [eax + 0xf], 0
lea eax, [ebp - 0x56]
xor ecx, ecx
mov edx, 0x32
call fcn.00403224
mov byte [ebp - 0x56], 1
lea edx, [ebp - 0x55]
mov eax, dword [0x1b3e59c]
call fcn.0049b78c
lea edx, [ebp - 0x4d]
mov eax, dword [0x1b3e594]
call fcn.0049b78c
lea eax, [ebp - 0x18]
call fcn.0040500c
mov edx, eax
lea eax, [ebp - 0x39]
mov ecx, 0x10
call fcn.00408350
lea eax, [ebp - 0x10]
mov edx, 0x10
call fcn.00405140
lea eax, [ebp - 0x10]
call fcn.0040500c
mov ecx, eax
lea eax, [ebp - 0x56]
mov edx, 0x2d
call fcn.0049d79c
mov eax, dword [0x669224]
cmp dword [eax + 0xc], 0
je 0x62f26e
lea edx, [ebp - 0x66]
mov eax, dword [0x669224]
mov eax, dword [eax + 0xc]
call fcn.0049b78c
xor eax, eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10]
call fcn.0040500c
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x24]
mov cl, byte [ecx + ebx]
mov ebx, dword [ebp - 0x24]
xor cl, byte [ebp + ebx - 0x66]
mov byte [eax + edx], cl
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x10
jne 0x62f247
lea eax, [ebp - 0xb6]
xor ecx, ecx
mov edx, 0x50
call fcn.00403224
mov edx, 0x667e80
lea eax, [ebp - 0xb6]
mov ecx, 0x46
call fcn.00408350
mov dl, 1
mov eax, dword [0x41ab08]
call fcn.00403c64
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x41ab08]
call fcn.00403c64
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0xb6]
mov ecx, 0x50
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x14]
lea eax, [ebp - 0x10]
call fcn.0040500c
push eax
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.0052d858
mov eax, dword [ebp - 8]
call fcn.00403c94
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, 0xacd8fc
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xc]
call fcn.00403c94
lea ecx, [ebp - 0x190]
mov eax, 0xacd8fc
mov edx, 0x50
call fcn.0049b85c
mov edx, dword [ebp - 0x190]
mov eax, dword [0x66a050]
add eax, 0x10
call fcn.00404b38
lea ecx, [ebp - 0x56]
mov eax, 0x667ec8
mov edx, 0x3b0
call fcn.0049d79c
mov edx, 0x667e48
mov eax, dword [0x1b3e59c]
call fcn.0049b78c
lea edx, [ebp - 0x56]
mov eax, 0x667e5c
mov ecx, 0x14
call fcn.00408350
lea eax, [ebp - 0x10]
call fcn.0040500c
mov edx, eax
mov eax, 0x667e70
mov ecx, 0x10
call fcn.00408350
lea ecx, [ebp - 0x56]
mov eax, 0x667e48
mov edx, 0x7e
call fcn.0049d79c
lea ecx, [ebp - 0x194]
lea eax, [ebp - 0x56]
mov edx, 0x14
call fcn.0049b85c
mov edx, dword [ebp - 0x194]
mov eax, dword [0x66a050]
add eax, 0x10
call fcn.00404dbc
mov eax, dword [0x66a050]
lea ecx, [ebp - 0x198]
mov eax, 0x667ec8
mov edx, 0x3b0
call fcn.0049b85c
mov edx, dword [ebp - 0x198]
mov eax, dword [0x66a050]
add eax, 0xc
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov eax, dword [eax + 0x208]
mov edx, 4
call fcn.0044e464
mov eax, dword [eax + 0xc]
mov edx, 0x62f6e0
call fcn.00404f00
je 0x62f450
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov eax, dword [eax + 0x208]
mov edx, 4
call fcn.0044e464
mov eax, dword [eax + 0xc]
mov edx, 0x62f6f0
call fcn.00404f00
jne 0x62f463
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f700
call fcn.0052fa8c
jmp 0x62f474
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f6e0
call fcn.0053b1ac
mov eax, dword [0x669dfc]
mov eax, dword [eax]
sub eax, 1
jb 0x62f48b
je 0x62f52c
jmp 0x62f5a4
lea edx, [ebp - 0x19c]
mov eax, dword [0x66a050]
mov eax, dword [eax + 0xc]
call fcn.0064fbd4
mov ecx, dword [ebp - 0x19c]
lea eax, [ebp - 0x14]
mov edx, 0x62f730
call fcn.00404e00
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14]
call fcn.0052fa8c
mov edx, dword [ebp - 0x14]
mov eax, 0x62f754
call fcn.004050f8
test eax, eax
jne 0x62f4da
mov byte [ebp - 1], 0
jmp 0x62f5a4
lea edx, [ebp - 0x1a0]
mov eax, dword [0x66a050]
mov eax, dword [eax + 0x10]
call fcn.0064fcf4
mov ecx, dword [ebp - 0x1a0]
lea eax, [ebp - 0x14]
mov edx, 0x62f760
call fcn.00404e00
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14]
call fcn.0052fa8c
mov edx, dword [ebp - 0x14]
mov eax, 0x62f754
call fcn.004050f8
test eax, eax
je 0x62f526
mov byte [ebp - 1], 1
jmp 0x62f5a4
mov byte [ebp - 1], 0
jmp 0x62f5a4
mov eax, dword [0x66a050]
mov eax, dword [eax + 0xc]
call fcn.00628f60
test al, al
je 0x62f550
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f784
call fcn.0052fa8c
jmp 0x62f567
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f7ac
call fcn.0052fa8c
mov byte [ebp - 1], 0
jmp 0x62f5a4
mov eax, dword [0x66a050]
mov eax, dword [eax + 0x10]
call fcn.00629070
test al, al
je 0x62f58f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f7d4
call fcn.0052fa8c
mov byte [ebp - 1], 1
jmp 0x62f5a4
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x62f7f8
call fcn.0052fa8c
mov byte [ebp - 1], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x62f5d6
lea eax, [ebp - 0x1a0]
mov edx, 7
call fcn.00404b08
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00404b08
ret