Function at 0x100189aa
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x254
mov eax, dword [ebp + 8]
push ebx
lea ecx, [eax + 0x87f]
push esi
push edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
cmp eax, ecx
ja 0x1001905f
mov esi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
jmp 0x100188b0
mov eax, dword [esp + 0x38]
cmp eax, 0x3951
ja 0x10018bfb
je 0x10018b77
cmp eax, 0x221b
ja 0x10018a16
je 0x100189fc
add eax, 0xffffde93
cmp eax, 0x91
ja case.0x100188ed.8558
movzx eax, byte [eax + 0x10019088]
jmp dword [eax*4 + 0x1001906c]
mov edx, dword [esp + 0x48]
mov ecx, 0x2000
mov word [edx], cx
mov eax, ecx
mov ecx, dword [esp + 0x44]
mov word [ecx], ax
jmp case.0x100188ed.8558
push 0xe02e
mov edi, 0x1424548d
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x34], 0xe7761cc0
call fcn.1002d520
add esp, 0xc
jmp case.0x100188ed.8558
mov edx, dword [esp + 0x40]
dec edx
mov dword [esp + 0x48], edx
jmp case.0x100188ed.8558
lds ecx, [ecx - 0x7292776d]
inc esp
and al, 0x10
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x38], 0xc4d22b5
call fcn.1002d520
add esp, 0xc
jmp case.0x100188ed.8558
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
push 4
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.10017ba0
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0xc]
push 4
mov dword [esp + 0x58], eax
push edx
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.10017ba0
add esp, 0x20
mov dword [esp + 0x40], eax
jmp case.0x100188ed.8558
cmp dword [esp + 0x44], 0
je 0x100189bc
cmp dword [esp + 0x40], 0
jne case.0x100188ed.8558
mov ecx, 0x9d2
mov eax, ecx
sub eax, 0x9d2
je 0x100189df
sub eax, 0x5d
jne 0x100189ec
enter 0xde2, 0xa
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xffffffffffffff9a
jae 0x100189d4
xlatb
mov dword [esp + 0x18], 1
add ecx, 0x5d
cmp ecx, 0xa2f
jbe 0x100189c1
jmp case.0x100188ed.8558
mov eax, dword [esp + 0x48]
mov edx, 0x4770
mov word [eax + 2], dx
mov dword [esp + 0x18], 0
jmp case.0x100188ed.8558
cmp eax, 0x38fa
ja 0x10018a55
je 0x10018c60
sub eax, 0x2238
je 0x1001905f
sub eax, 0x1688
je 0x10018a48
sub eax, 0x1d
jne case.0x100188ed.8558
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
jmp case.0x100188ed.8558
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x20], ebx
jmp case.0x100188ed.8558
sub eax, 0x3917
je 0x10018b22
sub eax, 0x1d
jne case.0x100188ed.8558
cmp dword [esi], 0x20
jb case.0x100188ed.8558
mov esi, 0x52a0
mov eax, esi
sub eax, 0x52a0
je 0x10018a8d
sub eax, 0x47
jne 0x10018b00
mov eax, dword [ebp + 0x10]
add dword [eax], 0xffffffe0
jmp 0x10018b00
mov edx, 8
mov ecx, 0x73d5
mov eax, ecx
sub eax, 0x73d5
je 0x10018ae9
sub eax, 0x3d
jne 0x10018af2
mov eax, edi
shr eax, 0x10
mov ebx, edi
shr ebx, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x10031978]
and ebx, 0xff
xor eax, dword [ebx*4 + 0x10031d78]
mov ebx, edi
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x10031578]
mov ebx, dword [esp + 0x20]
and edi, 0xff
xor eax, dword [edi*4 + 0x10032178]
mov edi, eax
jmp 0x10018af2
xor edi, dword [ebx]
add ebx, 4
mov dword [esp + 0x20], ebx
add ecx, 0x3d
cmp ecx, 0x7412
jbe 0x10018a97
dec edx
jne 0x10018a92
add esi, 0x47
cmp esi, 0x52e7
jbe 0x10018a77
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0x20
jae 0x10018a72
mov esi, ecx
jmp case.0x100188ed.8558
cmp dword [esi], 0
je 0x10018b6b
mov ebx, dword [ebp + 0x14]
test bl, 3
je 0x10018b6e
mov eax, 0x4185
cmp eax, eax
jne 0x10018b53
movzx edx, byte [ebx]
xor edx, edi
and edx, 0xff
shr edi, 8
xor edi, dword [edx*4 + 0x10031578]
inc ebx
dec dword [esi]
mov dword [ebp + 0x14], ebx
add eax, 3
cmp eax, 0x4185
jbe 0x10018b36
cmp dword [esi], 0
jne 0x10018b27
mov dword [esp + 0x20], ebx
jmp case.0x100188ed.8558
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x20], ebx
jmp case.0x100188ed.8558
cmp dword [esi], 4
jb case.0x100188ed.8558
mov ecx, 0x1f62
mov eax, ecx
sub eax, 0x1f62
je 0x10018bdd
sub eax, 0x1d
je 0x10018b9d
sub eax, 0x1d
jne 0x10018be2
add dword [esi], 0xfffffffc
jmp 0x10018be2
mov eax, edi
shr eax, 0x10
mov edx, edi
and eax, 0xff
mov eax, dword [eax*4 + 0x10031978]
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x10031d78]
mov edx, edi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10031578]
and edi, 0xff
xor eax, dword [edi*4 + 0x10032178]
mov edi, eax
jmp 0x10018be2
xor edi, dword [ebx]
add ebx, 4
add ecx, 0x1d
cmp ecx, 0x1f9c
jbe 0x10018b85
cmp dword [esi], 4
jae 0x10018b80
mov dword [esp + 0x20], ebx
jmp case.0x100188ed.8558
cmp eax, 0x4186
ja 0x10018df1
je 0x10018cb6
cmp eax, 0x39c5
ja 0x10018c6f
je 0x1001905f
sub eax, 0x396e
je 0x10018c67
sub eax, 0x1d
je 0x10018c37
sub eax, 0x1d
jne case.0x100188ed.8558
mov dword [esp + 0x18], edi
jmp case.0x100188ed.8558
cmp dword [esi], 0
je 0x10018c60
lea esp, [esp]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax]
xor ecx, edi
and ecx, 0xff
shr edi, 8
xor edi, dword [ecx*4 + 0x10031578]
inc eax
dec dword [esi]
mov dword [ebp + 0x14], eax
jne 0x10018c40
not edi
jmp case.0x100188ed.8558
mov dword [ebp + 0x14], ebx
jmp case.0x100188ed.8558
sub eax, 0x414c
je 0x10018c90
sub eax, 0x1d
jne case.0x100188ed.8558
sahf
das
xchg edx, eax
jne 0x10018cfb
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x30], edx
jmp case.0x100188ed.8558
cmp dword [ebp + 0xc], 0
jne case.0x100188ed.8558
mov eax, 0x376e
cmp eax, eax
je 0x10019049
add eax, 0x1b
cmp eax, 0x376e
jbe 0x10018ca1
jmp case.0x100188ed.8558
push 0
lea ecx, [esp + 0x10]
lea edx, [ebp + 0x14]
call fcn.10021e70
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne case.0x100188ed.8558
mov esi, 0x6033
mov dword [esp + 0x24], esi
mov eax, esi
sub eax, 0x6033
je 0x10018dc1
sub eax, 0x64
je 0x10018d0f
sub eax, 0x64
jne 0x10018dd6
cmp dword [esp + 0x1c], 4
jne 0x10018dd6
add al, 0xf
test esp, edx
add byte [eax], al
add bh, al
inc esp
and al, 0x1c
add eax, 0xe9000000
mov dword [eax], 0x4d8b0000
adc al, 0x8b
inc ebp
or al, 0xe8
imul eax, dword es:[eax], 0
mov dword [esp + 0x1c], 5
jmp 0x10018dd6
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
call fcn.1001f840
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10018dd6
mov ebx, 0x37b8
cmp ebx, ebx
jne 0x10018da8
mov eax, dword [ebp + 0xc]
test byte [eax + 0x2b], 0x80
jne 0x10018d51
mov esi, dword [esp + 0x30]
test byte [esi + 6], 0x10
je 0x10018d7e
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0xc]
and al, 0xc
call fcn.1002be60
mov dword [esi + 8], eax
cmp dword [esp + 0x1c], 0
jne 0x10018da8
mov esi, 0x65d
mov eax, esi
sub eax, 0x65d
je 0x10018d88
sub eax, 0x22
jne 0x10018d9d
push eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.10021cc0
add esp, 8
mov dword [esp + 0x1c], eax
jmp 0x10018d9d
mov dword [esp + 0x1c], 5
jmp 0x10018da8
or ecx, dword [ebx]
ja 0x10018d47
sub eax, 0xc244c8b
mov dx, word [ecx + 6]
mov eax, dword [esp + 0x30]
mov word [eax + 4], dx
add esi, 0x22
cmp esi, 0x67f
jbe 0x10018d5d
add ebx, 0x56
cmp ebx, 0x37b8
jbe 0x10018d2d
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x10018dd6
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov dword [edx], ecx
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
mov dword [ecx + 0xc], eax
add esi, 0x64
mov dword [esp + 0x24], esi
cmp esi, 0x60fb
jbe 0x10018cdc
mov esi, dword [ebp + 0x10]
jmp case.0x100188ed.8558
cmp eax, 0x58f9
ja 0x10019016
je 0x10018ebe
sub eax, 0x41a3
je 0x10018e9e
sub eax, 0x1d
je 0x1001905a
sub eax, 0x171c
jne case.0x100188ed.8558
cmp dword [ebp + 0xc], eax
je 0x10018e2b
cmp dword [ebp + 0x14], eax
jne 0x10018e54
mov ecx, 0x343e
mov eax, ecx
sub eax, 0x343e
je 0x10018e44
sub eax, 0x25
je 0x1001905f
jmp 0x10018e49
mov byte [esp + 0x18], 0
add ecx, 0x25
cmp ecx, 0x3463
jbe 0x10018e30
cmp byte [esi], 0
je case.0x100188ed.8558
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
call fcn.10008d60
test al, al
je case.0x100188ed.8558
mov ecx, 0x6a81
mov eax, ecx
sub eax, 0x6a81
je 0x10018e89
sub eax, 3
je 0x1001905f
jmp 0x10018e8e
mov byte [esp + 0x18], 0
add ecx, 3
cmp ecx, 0x6a84
jbe 0x10018e75
jmp case.0x100188ed.8558
sub ebx, dword [0x8bcfb4c4]
inc esp
and al, 0x1c
test eax, eax
je 0x10018eb5
mov edx, dword [esp + 0x30]
mov dword [edx], 0
mov dword [esp + 0x18], eax
jmp case.0x100188ed.8558
cmp dword [ebp + 0x14], 0
je case.0x100188ed.8558
mov eax, 0x7322
mov dword [esp + 0x24], eax
jmp 0x10018ee4
mov eax, dword [esp + 0x24]
cmp eax, 0x73d0
ja 0x10018f6d
je 0x10018f50
sub eax, 0x7322
je 0x10018f2a
sub eax, 0x57
jne 0x10018ff7
mov eax, dword [esp + 0x54]
inc eax
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or eax, ecx
call fcn.1002a900
fldz
fstp qword [esp + 0x58]
mov dword [esp + 0x34], eax
jmp 0x10018ff7
mov eax, dword [ebp + 0x14]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10018f30
sub eax, edx
sar eax, 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], 0x2710
jmp 0x10018ff7
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x34]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x10018f57
jmp 0x10018ff7
cmp eax, 0x7427
jne 0x10018ff7
mov ecx, dword [esp + 0x50]
lea eax, [esp + 0x58]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_VarR8FromUI4]
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
jne 0x10018f98
mov edx, dword [esp + 0x34]
mov dword [eax], edx
jmp 0x10018ff7
mov ebx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x4c]
mov esi, 0x3140
mov eax, esi
sub eax, 0x3140
je 0x10018fc7
sub eax, 0x1d
je 0x10018fbf
sub eax, 0x1d
jne 0x10018fec
mov dword [ecx + 4], eax
mov dword [ebx + 4], ecx
jmp 0x10018fec
mov eax, dword [esp + 0x34]
mov dword [ecx], eax
jmp 0x10018fec
cmp dword [ebx + 4], 0
je 0x10018fdc
lea ecx, [ecx]
mov ebx, dword [ebx + 4]
cmp dword [ebx + 4], 0
mov dword [ebp + 0xc], ebx
jne 0x10018fd0
mov eax, 8
call fcn.1002a900
mov ecx, eax
mov dword [esp + 0x4c], ecx
dec esp
add esi, 0x1d
cmp esi, 0x317a
jbe 0x10018fa4
mov eax, dword [esp + 0x24]
add eax, 0x57
mov dword [esp + 0x24], eax
cmp eax, 0x7427
jbe 0x10018ee0
mov ebx, dword [esp + 0x20]
mov esi, dword [ebp + 0x10]
jmp case.0x100188ed.8558
sub eax, 0x5916
je 0x10019024
sub eax, 0x1d
je 0x1001905f
jmp case.0x100188ed.8558
mov byte [esp + 0x18], 1
mov eax, dword [esp + 0x38]
add eax, 0x1d
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x3c]
jbe 0x100188b0
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
aaa
pop edx
cli
and eax, 0x9b8c7
add byte [eax], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
cmp eax, edx
jmp 0x10018feb
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret