Function at 0x19b390
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x34
test al, 1
push ebx
push ebp
mov ebp, dword [esp + 0x44]
push esi
push edi
jne 0x19b3b3
test byte [esp + 0x70], 1
jne 0x19b3b3
mov edi, 1
mov dword [esp + 0x18], edi
xor esi, esi
jmp 0x19b3be
xor esi, esi
mov dword [esp + 0x18], esi
mov edi, 1
test dl, 1
jne 0x19b3ce
test byte [esp + 0x74], 1
mov dword [esp + 0x14], edi
je 0x19b3d2
mov dword [esp + 0x14], esi
test cl, 1
jne 0x19b3e2
test byte [esp + 0x78], 1
mov dword [esp + 0x2c], edi
je 0x19b3e6
mov dword [esp + 0x2c], esi
mov eax, dword [eax*4 + 0x427c68]
mov dword [esp + 0x28], eax
mov eax, dword [edx*4 + 0x427c68]
mov edx, dword [ecx*4 + 0x427c68]
mov ecx, dword [esp + 0x64]
mov ecx, dword [ecx*4 + 0x428468]
add eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
mov edi, dword [eax*4 + 0x428468]
mov eax, dword [esp + 0x6c]
mov esi, dword [eax*4 + 0x428468]
add esi, esi
add esi, esi
add edi, edi
mov dword [esp + 0x68], esi
or esi, edi
or esi, ecx
lea eax, [esi + 1]
xor eax, esi
add edx, edx
mov ebx, eax
add edx, edx
not ebx
test esi, ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edi
je 0x19b4f4
shr ebx, 1
mov dword [esp + 0x64], ebx
mov edx, esi
shr edx, 1
and edx, ebx
mov ebx, eax
and ebx, esi
or edx, ebx
mov esi, edx
mov edx, ecx
shr edx, 1
and edx, dword [esp + 0x64]
mov ebx, eax
and ebx, ecx
or edx, ebx
mov ecx, edx
mov edx, edi
shr edx, 1
and edx, dword [esp + 0x64]
mov ebx, eax
and ebx, edi
or edx, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x68]
mov edi, edx
shr edi, 1
and edi, dword [esp + 0x64]
mov ebx, eax
and ebx, edx
mov edx, dword [esp + 0x28]
or edi, ebx
mov dword [esp + 0x68], edi
mov edi, edx
shr edi, 1
and edi, dword [esp + 0x64]
mov ebx, eax
and ebx, edx
mov edx, dword [esp + 0x24]
or edi, ebx
mov dword [esp + 0x28], edi
mov edi, edx
shr edi, 1
and edi, dword [esp + 0x64]
mov ebx, eax
and ebx, edx
mov edx, dword [esp + 0x20]
or edi, ebx
mov dword [esp + 0x24], edi
mov edi, edx
shr edi, 1
and edi, dword [esp + 0x64]
and eax, edx
or edi, eax
lea eax, [esi + 1]
xor eax, esi
mov ebx, eax
mov edx, edi
mov edi, dword [esp + 0x1c]
not ebx
test esi, ebx
mov dword [esp + 0x20], edx
jne 0x19b451
mov ebx, dword [esp + 0x50]
imul ebx, dword [esp + 0x5c]
cmp dword [esp + 0x18], 0
mov eax, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
je 0x19b9c2
cmp dword [esp + 0x14], 0
je 0x19b87a
cmp dword [esp + 0x2c], 0
je 0x19b6f9
cmp dword [esp + 0x78], 0
jbe 0x19bad6
mov esi, dword [esp + 0x68]
mov edx, ebp
imul edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
add edx, 0xffffffff
shr edx, 1
not esi
add edx, 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], edx
jmp 0x19b560
cmp dword [esp + 0x74], 0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x78], edx
jbe 0x19b6c0
mov edx, edi
not edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x74]
add edx, 0xffffffff
shr edx, 1
add edx, 1
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x70], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], edx
jbe 0x19b68f
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x78]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x48]
add eax, ebx
add eax, edx
lea edx, [eax + ebp]
lea esi, [edx + esi + 2]
mov edx, dword [esp + 0x70]
add edx, 0xffffffff
mov edi, ecx
shr edx, 1
add eax, 2
not edi
add edx, 1
movzx ebx, word [eax - 2]
mov word [esp + 0x34], bx
movzx ebx, word [eax]
mov word [esp + 0x36], bx
movzx ebx, word [eax + ebp - 2]
mov word [esp + 0x38], bx
movzx ebx, word [eax + ebp]
mov word [esp + 0x3a], bx
mov ebx, dword [esp + 0x50]
mov bp, word [eax + ebx - 2]
movzx ebx, word [eax + ebx]
mov word [esp + 0x3e], bx
movzx ebx, word [esi - 2]
mov word [esp + 0x40], bx
movzx ebx, word [esi]
mov word [esp + 0x42], bx
mov ebx, dword [esp + 0x18]
mov word [esp + 0x3c], bp
mov ebp, dword [esp + 0x64]
add ebx, ebp
mov ebp, dword [esp + 0x60]
lea ebx, [ebp + ebx*2]
mov ebp, dword [esp + 0x34]
mov dword [ebx], ebp
mov ebp, dword [esp + 0x38]
mov dword [ebx + 4], ebp
mov ebp, dword [esp + 0x3c]
mov dword [ebx + 8], ebp
mov ebp, dword [esp + 0x40]
mov dword [ebx + 0xc], ebp
mov ebp, dword [esp + 0x4c]
mov ebx, edi
or ebx, dword [esp + 0x64]
add eax, 4
add ebx, 1
and ebx, ecx
or ebx, edi
add ebx, 1
and ebx, ecx
add esi, 4
sub edx, 1
mov dword [esp + 0x64], ebx
jne 0x19b5e1
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x6c]
or edx, dword [esp + 0x58]
add edx, 1
and edx, edi
or edx, dword [esp + 0x6c]
add edx, 1
and edx, edi
mov dword [esp + 0x58], edx
lea edx, [ebp + ebp]
add dword [esp + 0x78], edx
sub dword [esp + 0x2c], 1
jne 0x19b593
mov esi, dword [esp + 0x20]
mov edx, esi
or edx, eax
mov eax, dword [esp + 0x68]
add edx, 1
and edx, eax
or edx, esi
add edx, 1
and eax, edx
mov edx, dword [esp + 0x50]
add edx, edx
add ebx, edx
sub dword [esp + 0x30], 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
jne 0x19b560
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 0x34
cmp dword [esp + 0x78], 0
jbe 0x19bad6
mov esi, dword [esp + 0x68]
mov edx, ebp
imul edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
not esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x74], 0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x78], edx
jbe 0x19b84c
mov edx, edi
not edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x74]
add edx, 0xffffffff
shr edx, 1
add edx, 1
mov dword [esp + 0x30], edx
jmp 0x19b760
cmp dword [esp + 0x70], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], edx
jbe 0x19b81b
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x70]
add edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x78]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x48]
add esi, 0xffffffff
add eax, ebx
mov edi, ecx
shr esi, 1
lea eax, [eax + edx + 2]
mov edx, dword [esp + 0x64]
not edi
add esi, 1
jmp 0x19b7b0
movzx ebx, word [eax - 2]
mov word [esp + 0x34], bx
movzx ebx, word [eax]
mov word [esp + 0x36], bx
movzx ebx, word [eax + ebp - 2]
mov word [esp + 0x38], bx
movzx ebx, word [eax + ebp]
mov ebp, dword [esp + 0x34]
mov word [esp + 0x3a], bx
mov ebx, dword [esp + 0x18]
add ebx, edx
mov edx, dword [esp + 0x60]
mov dword [edx + ebx*2], ebp
mov ebp, dword [esp + 0x38]
mov dword [edx + ebx*2 + 4], ebp
mov ebp, dword [esp + 0x4c]
mov edx, edi
or edx, dword [esp + 0x64]
add eax, 4
add edx, 1
and edx, ecx
or edx, edi
add edx, 1
and edx, ecx
sub esi, 1
mov dword [esp + 0x64], edx
jne 0x19b7b0
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
or edx, dword [esp + 0x58]
add edx, 1
and edx, edi
or edx, dword [esp + 0x6c]
add edx, 1
and edx, edi
mov dword [esp + 0x58], edx
lea edx, [ebp + ebp]
add dword [esp + 0x78], edx
sub dword [esp + 0x30], 1
jne 0x19b760
mov esi, dword [esp + 0x20]
add ebx, dword [esp + 0x50]
mov edx, esi
or edx, eax
add edx, 1
and edx, dword [esp + 0x68]
sub dword [esp + 0x2c], 1
mov eax, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
jne 0x19b721
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 0x34
cmp dword [esp + 0x78], 0
jbe 0x19bad6
mov edx, ebp
imul edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
not edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x74], 0
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x58], esi
mov dword [esp + 0x78], edx
jbe 0x19b992
mov edx, edi
not edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x30], edx
lea ecx, [ecx]
cmp dword [esp + 0x70], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], edx
jbe 0x19b972
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x60]
add esi, eax
mov eax, ecx
not eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x48]
add eax, ebx
mov dword [esp + 0x18], esi
lea esi, [eax + edx + 2]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
add eax, 0xffffffff
shr eax, 1
add eax, 1
lea ebx, [ebx]
movzx ebx, word [esi - 2]
mov word [esp + 0x34], bx
movzx ebx, word [esi]
mov word [esp + 0x36], bx
mov ebx, dword [esp + 0x18]
add ebx, edx
mov edx, dword [esp + 0x34]
mov dword [edi + ebx*2], edx
mov edx, dword [esp + 0x4c]
mov ebx, edx
or ebx, dword [esp + 0x64]
add esi, 4
add ebx, 1
and ebx, ecx
or ebx, edx
add ebx, 1
and ebx, ecx
sub eax, 1
mov edx, ebx
mov dword [esp + 0x64], edx
jne 0x19b920
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x6c]
add dword [esp + 0x78], ebp
or edx, esi
add edx, 1
and edx, edi
sub dword [esp + 0x30], 1
mov esi, edx
mov dword [esp + 0x58], esi
jne 0x19b8d0
mov edx, dword [esp + 0x20]
add ebx, dword [esp + 0x50]
or edx, eax
add edx, 1
and edx, dword [esp + 0x68]
sub dword [esp + 0x2c], 1
mov eax, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
jne 0x19b8a2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 0x34
cmp dword [esp + 0x78], 0
jbe 0x19bad6
mov edx, ebp
imul edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
not edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x2c], edx
lea ebx, [ebx]
cmp dword [esp + 0x74], 0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x78], edx
jbe 0x19bab0
mov edx, edi
not edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x30], edx
jmp 0x19ba20
cmp dword [esp + 0x70], 0
mov esi, dword [esp + 0x28]
jbe 0x19ba90
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, ecx
not eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x54]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x70]
add eax, ebx
add eax, dword [esp + 0x48]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x60]
lea ebx, [ebx]
mov edi, dword [esp + 0x18]
mov bx, word [eax]
add edi, esi
mov word [edx + edi*2], bx
mov edi, dword [esp + 0x4c]
or edi, esi
add edi, 1
and edi, ecx
add eax, 2
sub dword [esp + 0x64], 1
mov esi, edi
jne 0x19ba60
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
or edx, dword [esp + 0x58]
add dword [esp + 0x78], ebp
add edx, 1
and edx, edi
sub dword [esp + 0x30], 1
mov dword [esp + 0x58], edx
jne 0x19ba20
mov edx, dword [esp + 0x20]
add ebx, dword [esp + 0x50]
or edx, eax
add edx, 1
and edx, dword [esp + 0x68]
sub dword [esp + 0x2c], 1
mov eax, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ebx
jne 0x19b9f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 0x34