Function at 0x140a00
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x50
push esi
mov esi, dword [esp + 0x58]
xor edx, edx
cmp esi, edx
jne 0x140a15
xor eax, eax
pop esi
add esp, 0x50
ret
mov eax, dword [esp + 0x5c]
push ebx
push ebp
push edi
xor ecx, ecx
xor ebp, ebp
cmp eax, 0x18
mov edi, 0x7f4a7c13
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edi
mov ebx, 0x9e3779b9
jb 0x140e59
mov eax, 0xaaaaaaab
mul dword [esp + 0x68]
shr edx, 4
mov dword [esp + 0x10], edx
movzx eax, byte [esi + 0xf]
push 0
cdq
push pe_nt_image_headers32
push edx
push eax
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0xe]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0xd]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0xc]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0xb]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0xa]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 9]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 8]
mov edi, edx
cdq
add ecx, eax
adc edi, edx
add ebp, ecx
adc dword [esp + 0x24], edi
movzx eax, byte [esi + 0x17]
push 0
cdq
push pe_nt_image_headers32
push edx
push eax
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x16]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x15]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x14]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x13]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x12]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x11]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 0x10]
mov edi, edx
cdq
add ecx, eax
adc edi, edx
add dword [esp + 0x28], ecx
adc ebx, edi
movzx eax, byte [esi + 7]
push 0
cdq
push pe_nt_image_headers32
push edx
push eax
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 6]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 5]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 4]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 3]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 2]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi + 1]
mov edi, edx
cdq
push 0
add ecx, eax
push pe_nt_image_headers32
adc edi, edx
push edi
push ecx
call fcn.003f4730
mov ecx, eax
movzx eax, byte [esi]
mov edi, edx
cdq
add ecx, eax
adc edi, edx
sub ecx, dword [esp + 0x28]
sbb edi, ebx
sub ecx, ebp
sbb edi, dword [esp + 0x24]
add ecx, dword [esp + 0x18]
mov edx, ebx
adc edi, dword [esp + 0x1c]
shr edx, 0xb
xor ecx, edx
mov edx, dword [esp + 0x24]
xor eax, eax
xor edi, eax
mov eax, ebp
sub eax, dword [esp + 0x28]
mov ebp, edi
sbb edx, ebx
sub eax, ecx
sbb edx, edi
mov dword [esp + 0x34], edx
mov edx, ecx
shld ebp, edx, 9
shl edx, 9
xor eax, edx
mov edx, ebp
mov ebp, dword [esp + 0x34]
xor ebp, edx
mov edx, dword [esp + 0x28]
sub edx, eax
sbb ebx, ebp
sub edx, ecx
sbb ebx, edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], ebp
mov ebx, eax
shrd ebx, ebp, 8
xor edx, ebx
mov ebx, dword [esp + 0x3c]
shr ebp, 8
xor ebx, ebp
sub ecx, edx
sbb edi, ebx
mov dword [esp + 0x2c], ebx
sub ecx, eax
sbb edi, dword [esp + 0x24]
shr ebx, 6
xor ecx, ebx
mov ebx, dword [esp + 0x24]
xor ebp, ebp
xor edi, ebp
sub eax, edx
sbb ebx, dword [esp + 0x2c]
sub eax, ecx
sbb ebx, edi
mov dword [esp + 0x44], ebx
mov ebx, ecx
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
xor eax, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x44]
xor ebp, ebx
mov ebx, dword [esp + 0x2c]
sub edx, eax
sbb ebx, ebp
sub edx, ecx
sbb ebx, edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x24], ebp
mov ebx, eax
shrd ebx, ebp, 5
xor edx, ebx
mov ebx, dword [esp + 0x4c]
shr ebp, 5
xor ebx, ebp
sub ecx, edx
sbb edi, ebx
sub ecx, eax
sbb edi, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov edx, ebx
xor ebp, ebp
xor edi, ebp
mov ebp, dword [esp + 0x24]
shr edx, 3
xor ecx, edx
mov edx, dword [esp + 0x28]
sub eax, edx
sbb ebp, ebx
mov dword [esp + 0x1c], edi
sub eax, ecx
sbb ebp, edi
xor edi, edi
xor eax, edi
mov dword [esp + 0x54], ebp
mov edi, ebp
mov ebp, ecx
shl ebp, 0x11
xor edi, ebp
sub edx, eax
sbb ebx, edi
mov dword [esp + 0x24], edi
sub edx, ecx
sbb ebx, dword [esp + 0x1c]
mov ebp, eax
shrd ebp, edi, 0xb
shr edi, 0xb
xor ebx, edi
mov edi, dword [esp + 0x1c]
xor edx, ebp
sub ecx, edx
sbb edi, ebx
sub ecx, eax
sbb edi, dword [esp + 0x24]
mov ebp, ebx
mov dword [esp + 0x5c], edi
mov edi, edx
shrd edi, ebp, 0xc
xor ecx, edi
shr ebp, 0xc
mov edi, ebp
mov ebp, dword [esp + 0x5c]
xor ebp, edi
mov edi, dword [esp + 0x24]
sub eax, edx
sbb edi, ebx
sub eax, ecx
sbb edi, ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebp
shld ebp, ecx, 0x12
xor edi, ebp
shl ecx, 0x12
xor eax, ecx
mov ebp, eax
sub edx, ebp
sbb ebx, edi
sub edx, dword [esp + 0x18]
mov dword [esp + 0x24], edi
sbb ebx, dword [esp + 0x1c]
sub dword [esp + 0x64], 0x18
shrd eax, edi, 0x16
shr edi, 0x16
xor edx, eax
xor ebx, edi
add esi, 0x18
sub dword [esp + 0x10], 1
mov dword [esp + 0x28], edx
jne 0x140a57
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov edi, edx
mov edx, dword [esp + 0x1c]
add edi, eax
mov eax, dword [esp + 0x64]
adc ebx, 0
add eax, 0xffffffff
cmp eax, 0x16
ja case.default.0x140e6e
jmp dword [eax*4 + 0x1411dc]
movzx eax, byte [esi + 0x16]
push 0x1000000
cdq
push 0
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0x15]
push 0x10000
cdq
push 0
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0x14]
push pe_nt_image_headers32
cdq
push 0
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0x13]
push 1
cdq
push 0
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0x12]
push 0
cdq
push 0x1000000
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0x11]
push 0
cdq
push 0x10000
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0x10]
push 0
cdq
push pe_nt_image_headers32
push edx
push eax
call fcn.003f4730
add edi, eax
adc ebx, edx
movzx eax, byte [esi + 0xf]
push 0x1000000
cdq
push 0
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 0xe]
push 0x10000
cdq
push 0
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 0xd]
push pe_nt_image_headers32
cdq
push 0
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 0xc]
push 1
cdq
push 0
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 0xb]
push 0
cdq
push 0x1000000
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 0xa]
push 0
cdq
push 0x10000
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 9]
push 0
cdq
push pe_nt_image_headers32
push edx
push eax
call fcn.003f4730
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 8]
cdq
add ebp, eax
adc dword [esp + 0x24], edx
movzx eax, byte [esi + 7]
push 0x1000000
cdq
push 0
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
movzx eax, byte [esi + 6]
push 0x10000
cdq
push 0
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
movzx eax, byte [esi + 5]
push pe_nt_image_headers32
cdq
push 0
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
movzx eax, byte [esi + 4]
push 1
cdq
push 0
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
movzx eax, byte [esi + 3]
push 0
cdq
push 0x1000000
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
movzx eax, byte [esi + 2]
push 0
cdq
push 0x10000
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
movzx eax, byte [esi + 1]
push 0
cdq
push pe_nt_image_headers32
push edx
push eax
call fcn.003f4730
add dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
adc dword [esp + 0x1c], edx
movzx eax, byte [esi]
cdq
add ecx, eax
adc dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
sub ecx, edi
sbb edx, ebx
sub ecx, ebp
sbb edx, dword [esp + 0x24]
xor esi, esi
xor edx, esi
mov eax, ebx
shr eax, 0xb
xor ecx, eax
sub ebp, edi
mov eax, ecx
mov ecx, edx
mov edx, dword [esp + 0x24]
sbb edx, ebx
sub ebp, eax
sbb edx, ecx
mov dword [esp + 0x5c], edx
mov edx, eax
mov esi, ecx
shld esi, edx, 9
shl edx, 9
xor ebp, edx
mov edx, dword [esp + 0x5c]
xor edx, esi
sub edi, ebp
sbb ebx, edx
sub edi, eax
sbb ebx, ecx
mov dword [esp + 0x24], edx
mov esi, ebp
shrd esi, edx, 8
xor edi, esi
shr edx, 8
xor ebx, edx
mov edx, edi
sub eax, edx
sbb ecx, ebx
sub eax, ebp
sbb ecx, dword [esp + 0x24]
xor edi, edi
xor ecx, edi
mov esi, ebx
shr esi, 6
xor eax, esi
mov esi, dword [esp + 0x24]
sub ebp, edx
sbb esi, ebx
sub ebp, eax
sbb esi, ecx
mov dword [esp + 0x5c], esi
mov esi, eax
mov edi, ecx
shld edi, esi, 0x17
shl esi, 0x17
xor ebp, esi
mov esi, dword [esp + 0x5c]
xor esi, edi
sub edx, ebp
sbb ebx, esi
sub edx, eax
sbb ebx, ecx
mov dword [esp + 0x24], esi
mov edi, ebp
shrd edi, esi, 5
shr esi, 5
xor ebx, esi
xor edx, edi
sub eax, edx
sbb ecx, ebx
sub eax, ebp
sbb ecx, dword [esp + 0x24]
mov esi, ebx
shr esi, 3
xor edi, edi
xor eax, esi
mov esi, dword [esp + 0x24]
xor ecx, edi
sub ebp, edx
sbb esi, ebx
mov dword [esp + 0x1c], ecx
sub ebp, eax
sbb esi, ecx
xor ebp, edi
mov ecx, eax
shl ecx, 0x11
xor esi, ecx
sub edx, ebp
sbb ebx, esi
sub edx, eax
sbb ebx, dword [esp + 0x1c]
mov ecx, ebp
mov edi, esi
shrd ecx, edi, 0xb
xor edx, ecx
mov ecx, dword [esp + 0x1c]
shr edi, 0xb
xor ebx, edi
sub eax, edx
sbb ecx, ebx
sub eax, ebp
sbb ecx, esi
mov dword [esp + 0x2c], ebx
mov edi, edx
shrd edi, ebx, 0xc
shr ebx, 0xc
xor eax, edi
xor ecx, ebx
sub ebp, edx
sbb esi, dword [esp + 0x2c]
mov edi, eax
sub ebp, edi
sbb esi, ecx
mov ebx, ecx
shld ebx, eax, 0x12
shl eax, 0x12
xor ebp, eax
xor esi, ebx
mov eax, edx
mov edx, dword [esp + 0x2c]
sub eax, ebp
sbb edx, esi
sub eax, edi
sbb edx, ecx
shrd ebp, esi, 0x16
pop edi
xor eax, ebp
pop ebp
shr esi, 0x16
pop ebx
xor edx, esi
pop esi
add esp, 0x50
ret