Function at 0x4189c9
Capabilities:
Encode data using xor

Disassembly:
call 0xf140a641
loopne 0x418a03
mov bh, 0x83
les eax, [esi]
mov dword [eax], 0x7c70022
fdivr st(1)
sar edi, cl
mov dword [edi + 4], 0xe372fdd1
jb 0x4189ae
inc edi
add al, 0xd1
std
jb 0x4189ae
mov dword [edi + 8], 0xe775e176
mov dword [edi + 0xc], 0xeb03e50e
mov dword [edi + 0x10], 0x3808e904
adc ebp, dword [ebp + 0x1447c7ef]
shr ebp, 0x76
xchg ebx, eax
mov dword [edi + 0x18], 0x97009179
mov dword [edi + 0x1c], 0x9b7d9571
mov dword [edi + 0x20], 0x9f0d990c
mov dword [edi + 0x24], 0x831b9d0a
mov dword [edi + 0x28], 0x87a0815d
mov word [edi + 0x2c], 0x8584
mov ecx, dword [esi + 0x80]
mov word [ecx], 0
mov byte [ecx + 2], 0
popfd
sbb eax, dword [ebx + 0x5d2847c7]
and dword [eax + 0x47c76687], 0x8b85842c
mov es, word [eax + 0x66000000]
mov dword [ecx], 0x41c60000
add al, byte [eax]
xor ebx, ebx
xor ecx, ecx
nop
mov edi, ecx
xor edi, 0xd6
mov edx, ebx
and edx, 0x52
sub dword [esi], ecx
add al, 0xeb
jp 0x4189c5
add dword [ecx + 0x84de3a], 0
add byte [edx], dh
adc al, 0xf
add dl, 0x2e
mov byte [edi + ecx], dl
inc ecx
add ebx, 2
or dword [esi], 4
jmp 0x418acd
mov dword [ecx], 0
xor edx, edx
nop
mov ecx, edx
add cl, 0x90
xor cl, byte [edi + edx]
add cl, 0x30
mov byte [edi + edx], cl
inc edx
or dword [esi], 4
jmp 0x418b64
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418b69
mov word [ebx], 0
mov ecx, dword [esi + 0x84]
movzx ecx, word [ecx]
test cx, cx
je 0x418baa
mov edx, dword [esi + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418b99
mov word [ebx], 0
mov edx, dword [esi + 4]
movzx ecx, word [edx]
test cx, cx
je 0x418bda
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418bc9
mov dword [esi + 0x30], eax
mov dword [ebx], 0x22
mov edx, dword [esi + 0x70]
mov dword [edx + 0x40], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x38], 0
mov dword [edx + 0x34], 0
mov dword [edx + 0x30], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0
mov dword [edx + 0x1c], 0
mov dword [edx + 0x18], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
mov dword [edx + 4], 0
mov dword [edx], 0x44
xor eax, eax
mov ecx, dword [esi + 0xa8]
cmp dword [ecx], 0
add al, ah
dec esi
mov bh, 0x95
sar bh, 0x24
test dword [eax + 0x4b], ebp
inc esp
add bh, al
inc esi
or byte [eax], al
add byte [eax], al
add byte [ebx + 0x25ff305e], cl
je 0x418ccd
inc esp
add byte [ebp + 0x46890441], cl
or byte [ebx + 0x25ff305e], cl
je 0x418cdc
inc esp
add byte [ebx + 0x8b5046], cl
mov dword [esi + 8], eax
mov eax, dword [esi + 0x7c]
mov ecx, dword [eax]
mov dword [esi], 0x20272625
xor edx, edx
nop
nop
nop
nop
mov eax, edx
add al, 0xc9
leave
xor al, byte [esi + edx]
add al, 0x13
mov byte [esi + edx], al
mov eax, edx
cmp byte [eax], 0x13
lodsd eax, dword [esi]
loopne 0x418cc1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 4
jb 0x418caf
add dword [ebp - 0x57cbdec], ecx
add al, 0x72
in al, 0x8b
adc eax, 0x44b064
mov edx, dword [0x44b064]
mov al, 0x44
add byte [ebp - 0x74c98b2e], al
test edx, edx
je 0x418d0b
sal byte [esi + esi - 0x75], cl
mov ebx, dword [esi]
push ds
xor edi, edi
mov eax, dword [0x44b068]
cmp dword [eax + edi*8], 0xad133848
inc esp
add byte [ecx + 0x3848f83c], al
adc ebp, dword [ebp + 0x74e137e1]
dec eax
cmp byte [ebx], dl
lodsd eax, dword [esi]
loope 0x418d1e
loope 0x418d5d
pop es
inc edi
cmp edx, edi
jne 0x418ce1
jmp 0x418d0e
inc esi
add al, byte [eax]
add esp, 0x14
mov eax, dword [esi + 0x50]
mov eax, dword [eax + 4]
mov dword [esi], 0x20272625
xor ecx, ecx
leave
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc9
xor dl, byte [esi + ecx]
add dl, 0x13
mov byte [esi + ecx], dl
mov edx, ecx
cmp byte [eax], 0x13
lodsd eax, dword [esi]
loop 0x418d3c
ret 0x32c9
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 4
jb 0x418d28
int1
add dword [ebp - 0x67caef4], ecx
add al, 0x72
loop 0x418cd2
mov ecx, dword [0x44b064]
or eax, 0x44b064
test ecx, ecx
je 0x418d8c
mov edx, dword [esi]
xor edi, edi
mov ebx, dword [0x44b068]
cmp dword [esi + ecx], 0x657beb04
add al, 0xeb
jnp 0x418dc6
push cs
add al, 0xeb
jns 0x418dca
je 0x418d70
inc edi
cmp dword [esi], ecx
add al, 0xeb
jns 0x418de5
bnd jmp 0x418d95
add esp, 0x14
mov eax, dword [esi + 0x50]
mov eax, dword [eax + 4]
mov dword [esi], 0x20272625
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc9
xor dl, byte [esi + ecx]
add dl, 0x13
mov byte [esi + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 4
jb 0x418da1
mov ecx, dword [0x44b064]
test ecx, ecx
leave
je 0x418dfd
mov edx, dword [esi]
push ss
xor eax, esi
loopne 0x418e1d
mov bh, 0x8b
sbb eax, 0x44b068
cmp dword [ebx + edi*8], 0x1b6183f2
je 0x418de6
inc edi
cmp ecx, edi
jne 0x418dd6
jmp 0x418e00
sbb cl, byte [ebx + 0x3904fb4c]
sal dword [edx + edx + 0x50], 1
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x418e00
push eax
push 4
push ecx
push dword [0x44b06c]
call fcn.0043d334
add esp, 0x10
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi], 0x20272625
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc9
xor dl, byte [esi + ecx]
add dl, 0x13
mov byte [esi + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
or dword [esi], 4
jmp 0x418eab
ret 0x8813
push ecx
push dword [0x44b06c]
call fcn.0043d33a
add esp, 0x10
mov eax, dword [esi + 0xe8]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xee1e5d00
mov dword [esi + 8], 0
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x30]
jmp 0x418ea6
mov eax, dword [esi + 0x98]
mov ecx, dword [eax]
mov dword [esi], 0x20272625
xor eax, eax
nop
nop
nop
nop
mov edx, eax
add byte [ebx + 0x2506c708], cl
daa
and byte [ecx], dh
rcl byte [eax - 0x766f6f70], 0xc2
add dl, 0xc9
xor dl, byte [esi + eax]
add dl, 0x13
mov byte [esi + eax], dl
mov edx, eax
cmp byte [eax], 0x13
lodsd eax, dword [esi]
loop 0x418ed1
ret 0x32c9
xor eax, 1
lea eax, [eax + edx*2]
cmp eax, 4
jb 0x418ebd
lock add dword [ebp - 0x77caffc], ecx
add al, 0x72
loop 0x418e67
mov eax, dword [esi]
push es
mov edx, dword [0x44b064]
test edx, edx
je 0x418f4d
xor edi, edi
mov ebx, dword [0x44b068]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x7d5d6260
je 0x418f13
inc edi
cmp edx, edi
jne 0x418efd
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x30]
jmp 0x418f4d
mov edx, dword [esi + ecx + 4]
jmp 0x418f94
add byte [ebx - 0x6f6fdf3c], al
cmp eax, 0x102
add al, ah
dec esi
mov bh, 0x95
ror dword [ebx + 0xbc96], 0
or eax, dword [edx]
setns al
and al, cl
movzx eax, al
jmp dword [eax*4 + 0x444b88]
mov eax, dword [eax + 4]
cmp eax, 6
add al, ah
dec esi
mov bh, 0x94
ror dword [ebx - 0x1d7ff7aa], 1
or dl, cl
mov dword [esi + 8], edx
setne cl
cmp eax, 7
sete al
and al, cl
movzx eax, al
jmp dword [eax*4 + 0x444b98]