Function at 0x391a5c
Capabilities:
Encode data using xor

Disassembly:
pop eax
add eax, 0xb
mov dword [ebx], eax
jmp 0x391a4f
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
call 0x391a5c
pop ds
xlatb
stosd dword es:[edi], eax
jbe 0x391a05
shl byte [esi - 0x6e], cl
jmp 0x391a6e
pop esi
cmc
sti
add esi, 0xe58d
mov edx, ecx
mov eax, 0
pushal
jno 0x391a85
jmp 0x391a99
popal
mov ecx, dword [esi + eax]
jmp 0x391aaa
add ecx, 0x25f20102
jl 0x391ac6
push esi
jmp 0x391ac5
pop edi
add ecx, 0x2502820b
mov edx, ecx
sub ecx, 0x277175b1
jno 0x391ae1
jl 0x391ae1
cmc
push ecx
mov dh, 0xc3
pop dword [esi + eax]
movzx edi, di
jmp 0x391afb
sub eax, 1
mov bl, 0xa9
dec eax
dec eax
dec eax
mov bl, 0xec
cmp eax, 0xffff1b64
jne 0x391b2f
mov edi, 0x17c67f4b
sti
jmp 0x391b49
push eax
pop edi
jmp 0x391a9a
cmp dword [ebp + 0x122d0dfd], 0
je 0x391b60
mov dword [ebp + 0x122d2dca], 1
mov eax, dword [ebp + 0x122d1565]
mov esi, eax
mov ecx, dword [esi + 0x3c]
add esi, ecx
mov ecx, 0x400000
mov dword [ebp + 0x122d3382], ecx
mov edi, dword [ebp + 0x122d305a]
test edi, edi
jne 0x391b8b
jmp 0x391ccc
mov esi, edi
mov ecx, 0x4a94
lodsb al, byte [esi]
xor al, 0x37
stosb byte es:[edi], al
dec ecx
jne 0x391b92
mov ecx, dword [ebp + 0x122d305a]
mov edi, dword [ebp + 0x122d1565]
mov esi, dword [ebp + 0x122d3382]
cmp edi, esi
jne 0x391bbc
jmp 0x391cbd
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
sub dword [ebp + 0x122d021d], edx
sub edx, 8
add ecx, 8
add eax, edi
pushal
mov ebx, eax
push ebx
push 0x1000
push ebx
call dword [ebp + 0x122d29db]
pop ebx
test eax, eax
je 0x391bfd
lea eax, [ebp + 0x1245ab89]
push eax
push 0x40
push 0x1000
push ebx
call dword [ebp + 0x122d293c]
popal
mov bx, word [ecx]
test bx, 0xf000
je 0x391ca4
and ebx, 0xfff
add ebx, eax
cmp dword [ebp + 0x122d30d6], 1
jne 0x391c3a
cmp byte [ebx - 2], 0xe8
jne 0x391c3a
cmp byte [ebx + 3], 0x90
jne 0x391c3a
jmp 0x391ca4
cmp byte [ebx - 1], 0xc5
jne 0x391c67
cmp dword [ebp + 0x122d2d86], 0
je 0x391c67
cmp dword [ebp + 0x122d0b71], 0
je 0x391c67
mov byte [ebx - 1], 0xe9
jmp 0x391ca4
cmp dword [ebp + 0x122d0dfd], 0
je 0x391c94
cmp byte [ebx - 1], 0xc5
jne 0x391c94
cmp dword [ebp + 0x122d2d86], 0
je 0x391c94
mov byte [ebx - 1], 0xe9
jmp 0x391ca4
cmp dword [ebx], 0x90909090
je 0x391ca4
sub dword [ebx], esi
add dword [ebx], edi
add ecx, 2
sub edx, 2
jne 0x391bfe
cmp dword [ebp + 0x122d021d], 0
jne 0x391bbc
mov edi, dword [ebp + 0x122d305a]
mov ecx, 0x4a94
xor al, al
rep stosb byte es:[edi], al
mov edx, 0x28639002
mov edi, dword [ebp + 0x122d0965]
mov ecx, 0x79
lea esi, [ebp + 0x12548d1f]
rep movsb byte es:[edi], byte [esi]
xor edx, 0x28634112
mov edi, dword [ebp + 0x122d0965]
add edi, 0xe
test edx, edx
je 0x391d01
add edx, dword [ebp + 0x122d1565]
mov dword [edi + 1], edx
mov edx, dword [ebp + 0x122d3e7d]
mov edi, dword [ebp + 0x122d0965]
add edi, 0x54
mov dword [edi + 1], edx
mov edi, dword [ebp + 0x122d0965]
add edi, 0x49
mov dword [edi + 1], ebp
mov edi, dword [ebp + 0x122d0965]
add edi, 0x25
mov dword [edi + 1], ebp
jmp 0x391dac
mov eax, 0x10000000
push eax
cmp dword [esp], 0
jne 0x391d56
add esp, 4
mov eax, 1
ret
ret
add byte [eax], al
add dl, al
or al, 0
mov eax, ebp
mov ebp, 0x10000000
mov dword [ebp + 0x122d08bd], eax
mov eax, 0x10000000
xchg dword [esp], eax
mov dword [ebp + 0x122d2faa], eax
mov dword [ebp + 0x122d2dca], 2
mov eax, 0
mov dword [ebp + 0x122d1575], esp
jmp 0x391d41
mov eax, edx
dec dl
pushfd
sub al, 0x64
test al, 0x13
movsd dword es:[edi], dword [esi]
and byte [edx - 0x579bd225], cl
stosd dword es:[edi], eax
aad 0xea
jne 0x391d74
sub eax, 0xba19a864
and byte [edx + 0x57ae5dba], cl
idiv byte [edx + 0x32a38a20]
test al, 0xab
aad 0xea
jne 0x391e43
xor esp, dword [eax + ebp*4 + 0x24]
mov ebx, 0x33f48a20
test al, 0xa6
mov ebx, 0x306e8a20
test al, 0xab
aad 0xea
jne 0x391e16
das
aam 0x6d
fidivr dword [esi + 7]
add eax, eax
fdiv st(4), st(0)
inc esi
cmpsd dword [esi], dword es:[edi]
nop
mov ecx, 0x2143f6ca
ror dword [edx + 0x2f57de98], 1
aam 0x22
fstp xword [esi + 7]
add eax, eax
push es
fdiv st(4), st(0)
inc esi
cmpsd dword [esi], dword es:[edi]
nop
push 0x2143f6ca
rol dword [esi + 0x2f57de98], 1
aam 0x91
les edi, [esi + 7]
add eax, eax
adc bl, ah
cld
inc esi
cmpsd dword [esi], dword es:[edi]
nop
add al, 0xd5
test byte [ebx + 0x21], 0xd1
xchg edx, eax
cwde
ficom word [edi + 0x2f]
aam 0x7a
les edi, [esi + 7]
add eax, eax
push ds
fdiv st(4), st(0)
cld
inc esi
cmpsd dword [esi], dword es:[edi]
nop
xchg ecx, eax
aam 0xf6
inc ebx
and ecx, edx
out dx, al
cwde
ficom word [edi + 0x2f]
aam 0xf4
lds edi, [esi + 7]
add eax, eax
push 0xffffffffffffffdc
cld
inc esi
cmpsd dword [esi], dword es:[edi]
nop
pop ss
aam 0xf6
inc ebx
and ecx, edx
out 0x98, al
ficom word [edi + 0x2f]
aam 0x76
lds edi, [esi + 7]
add eax, eax
jb 0x391e4f
cld
inc esi
cmpsd dword [esi], dword es:[edi]
nop
popfd
xlatb
test byte [ebx + 0x21], 0xd1
invalid