Function at 0x4312e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x9f0
mov esi, esp
push 0x1000
call fcn.0040d330
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x734], 0xe332c41a
mov dword [esi + 0x738], 0xc5f681fd
mov dword [esi + 0x73c], 0x1938
mov byte [esi + 0x740], 0
mov eax, 0xf7c515c4
mov ecx, 0x3b
mov dword [esi + 4], ecx
movzx edi, byte [esi + eax + 0x83af170]
mov edx, dword [esi + 4]
xor edx, eax
and edx, edi
xor edx, eax
mov edi, edx
and edi, 0x29
mov ecx, edx
and ecx, 2
mov ebx, ecx
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, ecx
xor edx, 0x2b
add edx, ebx
add edx, edi
inc dl
mov byte [esi + eax + 0x83af170], dl
mov ecx, dword [esi + 4]
inc eax
dec ecx
cmp eax, 0xf7c515d1
jne 0x431330
mov eax, dword [0x44b7a4]
mov dword [esi + 4], eax
mov dword [esi + 0x404], 0xf896dcbe
mov dword [esi + 0x408], 0xdad82727
mov dword [esi + 0x40c], 0xde202cdb
mov dword [esi + 0x410], 0x2929d420
mov dword [esi + 0x414], 0xa699fe
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x9e
xor dl, byte [esi + ecx + 0x404]
add dl, 0xea
mov byte [esi + ecx + 0x404], dl
inc ecx
cmp ecx, 0x14
jne 0x4313c0
mov ecx, dword [0x44b7a0]
mov dword [esi + 0x9c], 0xb6e00103
mov dword [esi + 0xa0], 0xb8b805ad
mov dword [esi + 0xa4], 0x2ffa134f
mov dword [esi + 0xa8], 0x431efd1b
mov dword [esi + 0xac], 0x324f4c45
mov dword [esi + 0xb0], 0x48414a4a
mov dword [esi + 0xb4], 0xe8f0525a
mov dword [esi + 0xb8], 0x465b0fec
mov dword [esi + 0xbc], 0x5f2732e6
mov dword [esi + 0xc0], 0x585ae558
mov dword [esi + 0xc4], 0xdb306a1f
mov dword [esi + 0xc8], 0x626b613c
mov dword [esi + 0xcc], 0x126f106d
mov dword [esi + 0xd0], 0x63136e66
mov dword [esi + 0xd4], 0xd17e760a
mov dword [esi + 0xd8], 0x7a12cd31
mov dword [esi + 0xdc], 0x20037c7d
mov dword [esi + 0xe0], 0x7224c536
mov dword [esi + 0xe4], 0x517e0501
mov dword [esi + 0xe8], 0xb7d62bc
mov dword [esi + 0xec], 0xb35a40b0
mov dword [esi + 0xf0], 0x43444546
mov dword [esi + 0xf4], 0x77aa54b2
mov dword [esi + 0xf8], 0xaf444975
mov byte [esi + 0xfc], 0x80
mov word [esi + 0x101], 0
mov dword [esi + 0xfd], 0
mov edx, 0xf8
mov edi, 7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + edx - 0x5c]
lea eax, [ebx + ebx]
not eax
add eax, ebx
or eax, edi
or ebx, edx
and ebx, eax
add bl, 0x28
mov byte [esi + edx - 0x5c], bl
inc edx
dec edi
cmp edx, 0x15f
jne 0x431500
movzx edx, byte [esi + 0x9c]
mov eax, dword [esi + 0x14]
mov ebx, eax
test dl, dl
je 0x43154b
lea edi, [esi + 0x9d]
mov ebx, eax
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x431540
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x43156d
inc ecx
mov eax, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x431560
jmp 0x431570
mov eax, dword [esi + 4]
mov byte [ebx], 0
movzx ecx, byte [esi + 0x404]
test cl, cl
je 0x43159b
lea edx, [esi + 0x405]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x431590
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4315bb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4315b0
mov byte [ebx], 0
movzx eax, byte [esi + 0x734]
test al, al
je 0x4315db
lea ecx, [esi + 0x735]
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4315d0
mov byte [ebx], 0
push 0
call fcn.00445960
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44f7d0]