Function at 0x412c70
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x814
mov eax, dword [esp + 0x81c]
push ebx
push ebp
push esi
push edi
push 0x3ff
lea ecx, [esp + 0x28]
push eax
push ecx
call fcn.00438807
lea edx, [esp + 0x30]
push edx
call fcn.004387ea
mov esi, dword [esp + 0x840]
add esp, 0x10
xor ecx, ecx
xor ebp, ebp
test eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov byte [esi], 0x24
mov byte [esi + 1], 0x24
mov ebx, 2
jle 0x412e64
lea edi, [esp + 0x24]
jmp 0x412ccf
mov ecx, dword [esp + 0x14]
cmp ebx, 0x100
jge 0x412e64
mov ax, word [edi]
inc ebp
add edi, 2
cmp ebx, 6
jge 0x412d1e
cmp ax, 0x41
jb 0x412cf3
cmp ax, 0x5a
jbe 0x412d07
cmp ax, 0x61
jb 0x412e37
cmp ax, 0x7a
ja 0x412e37
mov byte [ebx + esi], al
inc ebx
cmp ebx, 4
jne 0x412e37
mov ebx, 6
jmp 0x412e37
cmp ax, 0x2c
je 0x412e2f
cmp ax, 0x20
je 0x412e2f
cmp ax, 0x62
je 0x412d3e
cmp ax, 0x42
jne 0x412d79
test ecx, ecx
je 0x412d79
lea ecx, [esp + 0x13]
mov eax, edi
push ecx
push 0x469428
push eax
inc ebp
add edi, 2
call fcn.00438693
add esp, 0xc
cmp eax, 0xffffffff
je 0x412e37
mov dl, byte [esp + 0x13]
mov dword [esp + 0x14], 0
mov byte [ebx + esi], dl
inc ebx
jmp 0x412e37
cmp ax, 0x77
je 0x412d85
cmp ax, 0x57
jne 0x412dc5
test ecx, ecx
je 0x412dc5
lea ecx, [esp + 0x1a]
mov eax, edi
push ecx
push 0x4681f4
push eax
inc ebp
add edi, 2
call fcn.00438693
add esp, 0xc
cmp eax, 0xffffffff
je 0x412e37
mov dl, byte [esp + 0x1a]
mov dword [esp + 0x14], 0
mov byte [ebx + esi], dl
mov al, byte [esp + 0x1b]
inc ebx
mov byte [ebx + esi], al
inc ebx
jmp 0x412e37
cmp ax, 0x6c
je 0x412dd1
cmp ax, 0x4c
jne 0x412e1d
test ecx, ecx
je 0x412e1d
lea ecx, [esp + 0x1c]
mov eax, edi
push ecx
push 0x4681f4
push eax
inc ebp
add edi, 2
call fcn.00438693
add esp, 0xc
cmp eax, 0xffffffff
je 0x412e37
mov dl, byte [esp + 0x1c]
mov dword [esp + 0x14], 0
mov byte [ebx + esi], dl
mov al, byte [esp + 0x1d]
inc ebx
mov byte [ebx + esi], al
mov cl, byte [esp + 0x1e]
inc ebx
mov byte [ebx + esi], cl
mov dl, byte [esp + 0x1f]
inc ebx
mov byte [ebx + esi], dl
inc ebx
jmp 0x412e37
cmp ax, 0x73
je 0x412e29
cmp ax, 0x53
jne 0x412e37
test ecx, ecx
jne 0x412e43
jmp 0x412e37
mov dword [esp + 0x14], 1
cmp ebp, dword [esp + 0x20]
jl 0x412ccb
jmp 0x412e64
lea ebp, [esp + ebp*2 + 0x24]
push ebp
call fcn.004387ea
add esp, 4
test eax, eax
jle 0x412e64
mov ecx, ebp
mov edi, eax
mov al, byte [ecx]
add ecx, 2
mov byte [ebx + esi], al
inc ebx
dec edi
jne 0x412e58
mov eax, dword [esp + 0x828]
cmp eax, 5
je 0x412ec1
cmp eax, 0xc
je 0x412ec1
cmp eax, 0xf
je 0x412ec1
cmp eax, 1
jne 0x412e85
mov byte [esi + 4], 0x48
jmp 0x412ec5
test eax, eax
jne 0x412e8f
mov byte [esi + 4], 0x19
jmp 0x412ec5
cmp eax, 9
jne 0x412e9a
mov byte [esi + 4], 0x1b
jmp 0x412ec5
cmp eax, 4
jne 0x412ea5
mov byte [esi + 4], 0x39
jmp 0x412ec5
cmp eax, 0xa
jne 0x412eb0
mov byte [esi + 4], 0x3b
jmp 0x412ec5
cmp eax, 3
jne 0x412ebb
mov byte [esi + 4], 0x49
jmp 0x412ec5
mov byte [esi + 4], 0x18
jmp 0x412ec5
mov byte [esi + 4], 0x38
mov cl, bl
mov eax, 2
sub cl, 6
mov byte [esi + 5], cl
xor cl, cl
cmp ebx, eax
jle 0x412ee2
mov dl, byte [eax + esi]
xor cl, dl
inc eax
cmp eax, ebx
jl 0x412ed8
mov byte [ebx + esi], cl
mov edx, dword [esp + 0x834]
inc ebx
lea ecx, [esp + 0x82c]
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
mov dword [edx], ebx
call fcn.0044e74a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x814
ret