Function at 0x46310f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xc], edi
mov dword [edi + 0x88], ebx
mov dword [edi + 0xd8], ebx
call fcn.0040a979
lea ecx, [ebp - 0x28]
call fcn.0040a979
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
test esi, esi
jne 0x46314d
push dword [ebp + 8]
jmp 0x4635fe
push ebx
mov ecx, eax
call fcn.00403a57
cmp word [eax], 0x5b
jne 0x75cf3522
mov ecx, dword [ebp + 0xc]
lea eax, [esi - 1]
push eax
call fcn.00403a57
cmp word [eax], 0x5d
jne 0x75cf3522
lea eax, [esi - 2]
mov dword [ebp - 0x14], 1
mov dword [ebp - 4], eax
mov esi, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x38]
push eax
push esi
call fcn.00462e22
test al, al
je 0x75cf3525
push 0x4c5ba0
call fcn.0042497b
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], edx
pop ecx
cmp esi, eax
jne 0x46320b
mov ecx, esi
mov esi, 0x4c5ba0
mov eax, esi
test ecx, ecx
je 0x4631e4
sub edx, esi
movzx edi, word [eax]
movzx esi, word [edx + eax]
mov dword [ebp - 0x18], edi
cmp si, di
mov edi, dword [ebp - 0xc]
jne 0x4631fc
add eax, 2
sub ecx, 1
jne 0x4631ca
mov eax, ebx
test dword [ebx - 0x707ce18b], ecx
mov byte [eax], al
add byte [eax], al
add dword [ebp - 0x13ff7371], ecx
or cl, ch
mov dh, 2
add byte [eax], al
cmp si, word [ebp - 0x18]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4631e6
push 0x4c5bb0
call fcn.0042497b
pop ecx
cmp esi, eax
jne 0x46326d
mov ecx, esi
mov esi, 0x4c5bb0
mov eax, esi
test ecx, ecx
je 0x463246
mov edx, dword [ebp - 8]
sub edx, esi
movzx edi, word [eax]
movzx esi, word [eax + edx]
mov dword [ebp - 0x18], edi
cmp si, di
mov edi, dword [ebp - 0xc]
jne 0x46325e
add eax, 2
sub ecx, 1
jne 0x46322c
mov eax, ebx
test dword [ebx - 0x707ce18b], ecx
mov byte [eax], al
add byte [eax], al
or byte [ebp - 0x13ff6371], cl
or cl, ch
push esp
add al, byte [eax]
add byte [esi + 0x3b], ah
jne 0x46324a
jne 0x46326a
or dword [edi + 0x88], 8
lea ecx, [edi + 0x8ec009c]
jmp 0x4634b2
cmp si, word [ebp - 0x18]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x463248
mov esi, dword [ebp - 0x10]
push 0x4c5bc0
call fcn.0042497b
pop ecx
cmp esi, eax
jne 0x4632e2
mov ecx, esi
mov esi, 0x4c5bc0
mov eax, esi
test ecx, ecx
je 0x4632a8
mov edx, dword [ebp - 8]
sub edx, esi
movzx edi, word [eax]
movzx esi, word [eax + edx]
mov dword [ebp - 0x18], edi
cmp si, di
mov edi, dword [ebp - 0xc]
jne 0x4632d3
add eax, 2
sub ecx, 1
jne 0x46328e
mov eax, ebx
test dword [ebx - 0x707cce8b], ecx
mov byte [eax], al
add byte [eax], al
adc byte [ebp + 0xecb7], cl
add byte [ebx + 0x36c0e8ce], cl
cli
cli
call dword [ecx - 0x73]
inc ebp
fmul dword [ebx - 0x6d17af32]
xor eax, 0x37e9fffa
add al, byte [eax]
add byte [esi + 0x3b], ah
jne 0x4632bf
cmp si, word [ebp - 0x18]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4632aa
push str.REGEXPCLASS
call fcn.0042497b
pop ecx
cmp esi, eax
jne 0x46334d
mov ecx, esi
mov esi, str.REGEXPCLASS
mov eax, esi
test ecx, ecx
je 0x46331d
mov edx, dword [ebp - 8]
sub edx, esi
movzx edi, word [eax]
movzx esi, word [edx + eax]
mov dword [ebp - 0x18], edi
cmp si, di
mov edi, dword [ebp - 0xc]
jne 0x46333e
add eax, 2
sub ecx, 1
jne 0x463303
mov eax, ebx
test dword [ebx + 0x75ff2775], ecx
fadd dword [ebx + 0x888f]
add byte [eax], ah
call fcn.004262e9
pop ecx
mov dword [edi + 0x8ec00cc], eax
jmp 0x463512
cmp si, word [ebp - 0x18]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x46331f
push 0x4c5be0
call fcn.0042497b
pop ecx
cmp esi, eax
jne 0x4633b2
mov ecx, esi
mov esi, 0x4c5be0
mov eax, esi
test ecx, ecx
je 0x463388
mov edx, dword [ebp - 8]
sub edx, esi
movzx edi, word [eax]
movzx esi, word [edx + eax]
mov dword [ebp - 0x18], edi
cmp si, di
mov edi, dword [ebp - 0xc]
jne 0x4633a3
add eax, 2
sub ecx, 1
jne 0x46336e
mov eax, ebx
test dword [ebx - 0x707ede8b], ecx
mov byte [eax], al
add byte [eax], al
add byte [eax + eax], al
add byte [ebp + 0xac8f], cl
add cl, ch
sgdt [eax]
add byte [esi + 0x3b], ah
jne 0x46338f
invalid
cmp si, word [ebp - 0x18]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x46338a
mov edx, 0x4c5bec
lea ecx, [ebp - 0x38]
call fcn.0041fa0a
test byte [ebx + 0x75ff1b74], cl
fadd dword [ebx + 0x888f]
add byte [eax - 0x18], al
pop ss
das
cld
call [ecx - 0x77]
xchg esp, ebx
add byte [eax], al
jne 0x4633c3
push dword [ebp - 0x28]
or dword [edi + 0x88], 0x40
call fcn.004262e9
pop ecx
mov dword [edi + 0x750000dc], eax
jmp 0x463512
xor al, 1
add byte [eax], al
mov edx, 0x4c5bf0
lea ecx, [ebp - 0x38]
call fcn.0041fa0a
test byte [ebx + 0x75ff1e74], cl
fadd dword [ecx + 0x888f]
add byte [eax - 0x18000000], al
call 0x5a463030
mov dword [edi + 0x750000e0], eax
jmp 0x463512
lea eax, [ebp - 0x28]
cmp ecx, eax
mov eax, dword [ebp - 4]
je 0x6463182
lea eax, [ebp - 0x28]
push eax
call fcn.0040a8df
jmp 0x463512
mov eax, dword [ebp - 4]
jmp 0x6463182
mov ecx, edi
call 0x75cf39d8
mov bl, 1
lea ecx, [ebp - 0x28]
call 0x64098a7
lea ecx, [ebp - 0x38]
call fcn.004098a7
pop edi
pop esi
mov al, bl
pop ebx
leave
ret 8