Function at 0x42b320
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0x54554a4b
mov eax, 0x6e
mov ecx, 0x7bc7c891
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x5e]
mov edx, eax
and edx, esi
add edx, edx
lea edi, [eax + esi]
add edi, 0x84383700
mov ebx, ecx
sub ebx, esi
and ebx, edx
not edx
and edx, edi
sub edx, ebx
mov esi, edx
not esi
or esi, 0x6ae6ead9
add esi, edx
inc esi
mov edi, esi
and edi, 0xfd
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
xor ebx, 2
imul ebx, edi
xor edx, 0xd9
add edx, esi
add edx, ebx
inc dl
mov byte [esp + eax - 0x5e], dl
inc eax
dec ecx
cmp eax, 0x72
jne 0x42b350
mov eax, dword [esp + 0x10]
mov ecx, dword [0x452d58]
test ecx, ecx
je 0x42b404
xor edx, edx
mov esi, dword [0x452d5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x42b3e0
inc edx
cmp ecx, edx
jne 0x42b3d0
jmp 0x42b404
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42b404
lea eax, [esp + 0xc]
push eax
push 0
push 0
push 5
push 4
push dword [0x452d60]
push ecx
call fcn.004427e0
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x42b4d0
push dword [esp + 0xc]
call fcn.0043f540
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], 0x54554a4b
mov eax, 0x6e
mov edx, 0x7bc7c891
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x5e]
mov ebx, eax
and ebx, esi
add ebx, ebx
lea edi, [eax + esi]
add edi, 0x84383700
mov ebp, edx
sub ebp, esi
and ebp, ebx
not ebx
and ebx, edi
sub ebx, ebp
mov esi, ebx
not esi
or esi, 0x6ae6ead9
add esi, ebx
inc esi
mov edi, esi
and edi, 0xfd
mov ebp, esi
and ebp, 2
or esi, 2
imul esi, ebp
xor ebp, 2
imul ebp, edi
xor ebx, 0xd9
add ebx, esi
add ebx, ebp
inc bl
mov byte [esp + eax - 0x5e], bl
inc eax
dec edx
cmp eax, 0x72
jne 0x42b440
mov eax, dword [esp + 0x10]
mov edx, dword [0x452d58]
test edx, edx
je 0x42b4d7
xor esi, esi
mov edi, dword [0x452d5c]
mov ebp, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xc85f7986
je 0x42b4dd
inc esi
cmp edx, esi
jne 0x42b4c0
jmp 0x42b4fc
xor ebx, ebx
jmp 0x42b7ab
mov ebp, dword [esp + 8]
jmp 0x42b4fc
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x42b4fc
push 0
push ecx
push ebp
push 5
push 4
push dword [0x452d60]
push edx
call fcn.004427e0
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x42b7a2
mov esi, dword [ebp]
xor eax, eax
mov ecx, esi
mov edx, ebp
nop
lea edi, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add ebx, 0x104
mov edx, edi
test ecx, ecx
jne 0x42b510
test ebx, ebx
jns 0x42b530
mov eax, 0xffffffff
push eax
call fcn.0040cbc0
add esp, 4
mov dword [esp], eax
mov ecx, ebp
jmp 0x42b550
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x42b573
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0x42b540
add edx, 2
nop
mov word [eax], di
add eax, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x42b560
jmp 0x42b540
xor ebx, ebx
mov ecx, dword [esp]
cmp eax, ecx
je 0x42b799
mov word [eax], 0
movzx edi, word [ecx]
test di, di
je 0x42b5db
mov eax, dword [esp]
add eax, 2
xor ebx, ebx
mov ecx, edi
jmp 0x42b5ac
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42b5db
cmp cx, 0x7f
jbe 0x42b5a0
movzx edx, cx
cmp edx, 0x7ff
ja 0x42b5d0
add ebx, 2
jmp 0x42b5a1
cmp cx, 0xffff
je 0x42b5a1
add ebx, 3
jmp 0x42b5a1
lea eax, [ebx + 1]
push eax
call fcn.0040cbc0
add esp, 4
mov ebp, eax
mov dword [esp + 4], eax
test di, di
je 0x42b717
mov ebp, dword [esp + 4]
test ebx, ebx
je 0x42b717
mov edx, dword [esp]
mov ecx, ebx
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
movzx eax, di
lea edi, [edx + 2]
cmp ax, 0x7f
ja 0x42b630
lea esi, [ebp + 1]
mov byte [ebp], al
jmp 0x42b6c0
cmp eax, 0x7ff
ja 0x42b660
cmp ecx, 2
jb 0x42b660
mov edx, eax
shr edx, 6
add dl, 0xc0
mov byte [ebp], dl
and al, 0x3f
or al, 0x80
lea esi, [ebp + 2]
mov byte [ebp + 1], al
jmp 0x42b6c0
mov esi, eax
and esi, 0xfc00
cmp esi, 0xd800
jne 0x42b6da
cmp ecx, 4
jb 0x42b6da
movzx esi, word [edx + 2]
add edx, 4
shl eax, 0xa
lea edi, [eax + esi]
add edi, 0xfca02400
mov eax, edi
shr eax, 0x12
add al, 0xf0
mov byte [ebp], al
mov eax, edi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebp + 1], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebp + 2], al
mov eax, esi
and al, 0x3f
or al, 0x80
lea esi, [ebp + 4]
mov byte [ebp + 3], al
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, ebp
sub ecx, esi
mov edx, edi
mov ebp, esi
movzx edi, word [edx]
test di, di
je 0x42b717
test ecx, ecx
jne 0x42b610
jmp 0x42b717
movzx edx, si
cmp edx, 0xdc00
jne 0x42b6e9
mov edx, edi
jmp 0x42b6c8
cmp ecx, 3
jb 0x42b713
mov edx, eax
shr edx, 0xc
or dl, 0xe0
mov byte [ebp], dl
mov edx, eax
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ebp + 1], dl
and al, 0x3f
or al, 0x80
lea esi, [ebp + 3]
mov byte [ebp + 2], al
jmp 0x42b6c0
mov esi, ebp
jmp 0x42b6c0
mov byte [ebp], 0
mov dword [esp + 0x10], 0x1c171534
mov dword [esp + 0x14], 0x2efee1f
mov dword [esp + 0x18], 0xf1f249f1
mov word [esp + 0x1c], 0x7bf4
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov esi, eax
and esi, 0x12
mov edx, ecx
xor edx, 0xe9
add edx, esi
xor dl, byte [esp + ecx + 0x10]
add dl, 0x73
mov byte [esp + ecx + 0x10], dl
inc ecx
add eax, 2
cmp ecx, 0x14
jne 0x42b750
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x38]
push ebx
mov esi, dword [esp + 8]
push esi
push eax
call fcn.0040d690
mov ebx, eax
push esi
call fcn.0040cbd0
add esp, 4
mov ebp, dword [esp + 8]
mov ecx, dword [esp]
push ecx
call fcn.0040cbd0
add esp, 4
push ebp
call fcn.0043f5b0
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret