Function at 0x3420473d
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
xor eax, eax
push esi
movzx ecx, byte [eax + 0x34204ad8]
cmp ecx, edx
jge 0x34204df4
mov esi, dword [esp + 0x1c]
mov cl, byte [ecx + esi]
mov byte [eax + 0x3437bdc0], cl
add eax, 1
cmp eax, 0x40
jb 0x34204743
mov eax, 0x3437bd55
sub eax, 0xa
mov dword [esp + 8], eax
mov eax, 0x3437bd55
sub eax, 9
mov dword [esp + 0xc], eax
push ebx
push ebp
mov eax, 0x3437bd55
sub eax, 8
push edi
mov dword [esp + 0x1c], eax
mov edi, 0x3437bd55
mov ebp, 0x3437bd55
xor ecx, ecx
mov eax, 0x3437bd55
sub edi, 0xb
sub ebp, 6
sub eax, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
cmp dword [esp + 0x2c], 1
je 0x34204e40
mov esi, ecx
push 0x20
push 0x3437bde0
push 0x3437bda0
call sub.msvcr80.dll_memcpy
lea ecx, [esi + esi*2]
add esp, 0xc
xor eax, eax
shl ecx, 4
lea ecx, [ecx + 0x3437be01]
movzx edx, byte [eax + 0x34204b18]
movzx edx, byte [edx + 0x3437bde0]
xor dl, byte [ecx + eax - 1]
add eax, 6
mov byte [eax + 0x3437bd4a], dl
movzx edx, byte [eax + 0x34204b13]
movzx edx, byte [edx + 0x3437bde0]
xor dl, byte [ecx + eax - 6]
mov byte [eax + 0x3437bd4b], dl
movzx edx, byte [eax + 0x34204b14]
movzx edx, byte [edx + 0x3437bde0]
xor dl, byte [ecx + eax - 5]
mov byte [eax + 0x3437bd4c], dl
movzx edx, byte [eax + 0x34204b15]
movzx edx, byte [edx + 0x3437bde0]
xor dl, byte [ecx + eax - 4]
mov byte [eax + 0x3437bd4d], dl
movzx edx, byte [eax + 0x34204b16]
movzx edx, byte [edx + 0x3437bde0]
xor dl, byte [ecx + eax - 3]
mov byte [eax + 0x3437bd4e], dl
movzx edx, byte [eax + 0x34204b17]
movzx edx, byte [edx + 0x3437bde0]
xor dl, byte [ecx + eax - 2]
cmp eax, 0x30
mov byte [eax + 0x3437bd4f], dl
jb 0x342047df
xor esi, esi
mov ecx, 0x3437bd85
mov eax, 6
movzx edx, byte [eax + edi]
movzx ebx, byte [eax + ebp]
add edx, esi
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x14]
movzx ebx, byte [eax + ebx]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x18]
movzx ebx, byte [eax + ebx]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x1c]
movzx ebx, byte [eax + ebx]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x20]
movzx ebx, byte [eax + ebx]
movzx edx, byte [ebx + edx*2 + 0x34204b48]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx - 5], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx - 4], bl
mov ebx, edx
shr ebx, 1
and bl, 1
mov byte [ecx - 3], bl
movzx ebx, byte [eax + 0x3437bd55]
and dl, 1
mov byte [ecx - 2], dl
movzx edx, byte [eax + 0x3437bd50]
add edx, esi
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd51]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd52]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd53]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd54]
movzx edx, byte [ebx + edx*2 + 0x34204b88]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx - 1], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx], bl
mov ebx, edx
shr ebx, 1
and bl, 1
mov byte [ecx + 1], bl
movzx ebx, byte [eax + 0x3437bd5b]
and dl, 1
mov byte [ecx + 2], dl
movzx edx, byte [eax + 0x3437bd56]
add edx, esi
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd57]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd58]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd59]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd5a]
movzx edx, byte [ebx + edx*2 + 0x34204bc8]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx + 3], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx + 4], bl
mov ebx, edx
shr ebx, 1
and bl, 1
mov byte [ecx + 5], bl
and dl, 1
movzx ebx, byte [eax + 0x3437bd61]
mov byte [ecx + 6], dl
movzx edx, byte [eax + 0x3437bd5c]
add edx, esi
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd5d]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd5e]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd5f]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x3437bd60]
movzx edx, byte [ebx + edx*2 + 0x34204c08]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx + 7], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx + 8], bl
mov ebx, edx
shr ebx, 1
and bl, 1
and dl, 1
mov byte [ecx + 9], bl
mov byte [ecx + 0xa], dl
add eax, 0x18
add ecx, 0x10
add esi, 8
cmp eax, 0x36
jb 0x34204887
xor eax, eax
lea esp, [esp]
movzx ecx, byte [eax + 0x34204d48]
movzx edx, byte [ecx + 0x3437bd80]
xor dl, byte [eax + 0x3437bdc0]
movzx ecx, byte [eax + 0x34204d49]
mov byte [eax + 0x3437bde0], dl
movzx edx, byte [ecx + 0x3437bd80]
xor dl, byte [eax + 0x3437bdc1]
movzx ecx, byte [eax + 0x34204d4a]
mov byte [eax + 0x3437bde1], dl
movzx edx, byte [ecx + 0x3437bd80]
xor dl, byte [eax + 0x3437bdc2]
movzx ecx, byte [eax + 0x34204d4b]
mov byte [eax + 0x3437bde2], dl
movzx edx, byte [ecx + 0x3437bd80]
xor dl, byte [eax + 0x3437bdc3]
add eax, 4
cmp eax, 0x20
mov byte [eax + 0x3437bddf], dl
jb 0x34204a33
push 0x20
push 0x3437bda0
push 0x3437bdc0
call sub.msvcr80.dll_memcpy
mov eax, dword [esp + 0x1c]
add eax, 1
add esp, 0xc
cmp eax, 0x10
mov dword [esp + 0x10], eax
jae 0x34204d68
mov ecx, dword [esp + 0x10]
jmp 0x342047b0
xor eax, eax
lea ebx, [ebx]
movzx ecx, byte [eax + 0x3437bdc0]
mov dl, byte [eax + 0x3437bde0]
mov byte [eax + 0x3437bdc0], dl
mov byte [eax + 0x3437bde0], cl
add eax, 1
cmp eax, 0x20
jb 0x34204d6c
mov eax, dword [esp + 0x28]
mov ecx, 0x34204e00
mov esi, 0x34204e01
mov edi, 0x34204e02
mov ebp, 0x34204e03
sub ecx, eax
sub esi, eax
sub edi, eax
sub ebp, eax
mov edx, 0x10
movzx ebx, byte [eax + ecx]
movzx ebx, byte [ebx + 0x3437bdc0]
mov byte [eax], bl
movzx ebx, byte [eax + esi]
movzx ebx, byte [ebx + 0x3437bdc0]
mov byte [eax + 1], bl
movzx ebx, byte [eax + edi]
movzx ebx, byte [ebx + 0x3437bdc0]
mov byte [eax + 2], bl
movzx ebx, byte [eax + ebp]
movzx ebx, byte [ebx + 0x3437bdc0]
mov byte [eax + 3], bl
add eax, 4
sub edx, 1
jne 0x34204db2
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x14
ret 8
mov esi, 0xf
sub esi, ecx
jmp 0x342047bd