Function at 0x100096ff
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005a749
call fcn.10059d20
sub esp, 0x14c
mov byte [ebp - 0x58], dl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x10009e78
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0xa8], ecx
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x10009e70
lea eax, [ebp - 0xac]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [ebp - 0x68]
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
call fcn.1000ad9c
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x68]
push dword [ebp - 0x68]
sar eax, 1
push eax
push 0x5ca7
push 0x7999
call fcn.1002db80
pop ecx
pop ecx
call eax
push dword [ebp - 0x68]
lea ecx, [ebp - 0x8c]
call fcn.100035e9
push 0x70ea
mov byte [ebp - 4], 1
call fcn.10017465
cmp dword [ebp - 0x78], 8
pop ecx
movzx edx, ax
lea ecx, [ebp - 0x8c]
cmovae ecx, dword [ebp - 0x8c]
xor esi, esi
mov eax, dword [ebp - 0x7c]
inc esi
mov dword [ebp - 0x70], edx
cmp word [ecx + eax*2 - 2], dx
je 0x100097d4
push esi
push ecx
push ecx
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x70]
call fcn.10008c01
add esp, 0x10
push 0x65fc
push 0x7cb8
push esi
push ebx
lea eax, [ebp - 0x8c]
mov edx, 0x6d32
push eax
push esi
mov ecx, 0x3f03
call fcn.10009526
add esp, 0x18
lea eax, [ebp - 0x8c]
cmp dword [ebp - 0x78], 8
cmovae eax, dword [ebp - 0x8c]
push ebx
push eax
push 0x5ca7
push 0x1a14
call fcn.1002db80
pop ecx
pop ecx
call eax
push ecx
lea eax, [ebp - 0x70]
mov edx, 0x3a89
push eax
sub esp, 0xc
lea ecx, [ebp - 0x8c]
push esi
call fcn.10008c4d
push esi
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], ebx
push eax
push edi
push 0x587b
push 0x416
mov ecx, 0x51a
call fcn.10008d0a
add esp, 0x2c
mov byte [ebp - 0x1d], bl
mov eax, ebx
mov dword [ebp - 0x18], ebx
cmp eax, 0x12c
jae 0x10009e65
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0xc4]
call fcn.100035c1
push 0x10
pop edx
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 2
call fcn.10018fae
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 3
push eax
push 0x724d
push 1
push 1
push 0x5436
push 1
mov edx, 0x70c3
lea ecx, [ebp - 0xc4]
call fcn.10009526
add esp, 0x18
mov dword [ebp - 0x44], 0x2201b300
mov ecx, ebx
mov dword [ebp - 0x40], 0x1d035602
xor esi, esi
mov word [ebp - 0x3c], 1
mov dword [ebp - 0x54], ecx
inc esi
push 0x2e
pop eax
push 2
mov word [ebp - 0x98], ax
pop edi
cmp edi, 2
jne 0x100098f3
push edi
pop ecx
mov dword [ebp - 0x54], ecx
jmp 0x10009937
movzx edx, byte [ebp + edi - 0x43]
mov eax, edi
sub eax, ecx
push 0x6604
sub esp, 0xc
movzx eax, byte [ebp + eax - 0x46]
push esi
movzx ecx, word [ebp + eax*2 - 0x98]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + edi - 0x44]
add ecx, edx
mov word [ebp + eax*2 - 0x98], cx
lea ecx, [ebp - 0x54]
call fcn.10009634
mov ecx, dword [ebp - 0x54]
add esp, 0x14
add edi, 2
cmp edi, 0xa
jb 0x100098e7
xor eax, eax
mov dword [ebp - 0xe0], 7
mov word [ebp - 0x90], ax
lea ecx, [ebp - 0xf4]
mov word [ebp - 0xf4], ax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0xe4], ebx
call fcn.100039d7
push ecx
push ecx
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005c10
push ebx
push esi
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 3
call fcn.10003df6
xor eax, eax
lea edi, [ebp - 0x98]
cmp dword [ebp - 0xb0], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [ebp - 0xc4]
cmovae eax, dword [ebp - 0xc4]
push eax
push 0x5ca7
push 0x53f8
call fcn.1002db80
pop ecx
pop ecx
call eax
mov edi, eax
cmp edi, 0xffffffff
je 0x10009e37
push ebx
lea eax, [ebp - 0xf8]
push eax
push dword [ebp - 0x6c]
mov eax, dword [ebp + 0xc]
push dword [eax]
push edi
push 0x5ca7
push 0x4e2e
call fcn.1002db80
pop ecx
pop ecx
call eax
push edi
test eax, eax
push 0x5ca7
push 0x457f
setne bl
call fcn.1002db80
pop ecx
pop ecx
call eax
test bl, bl
je 0x10009e35
push 0x22
pop eax
mov dword [ebp - 0x2c], 0x5702b600
xor ebx, ebx
mov byte [ebp - 0x28], 0x74
mov word [ebp - 0x38], ax
mov dword [ebp - 0x30], 0x6067
cmp dword [ebp - 0x30], 0x61ec
jle 0x10009acb
mov dword [ebp - 0x1c], ebx
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov eax, edi
cdq
idiv dword [ebp - 0x24]
mov eax, ecx
lea ecx, [ebp - 0x140]
sub eax, edx
xor eax, dword [ebp - 0x1c]
cdq
push edx
push eax
call fcn.10001a94
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10009a83
mov eax, dword [eax]
push eax
call fcn.1004252f
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x140]
call fcn.100038eb
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x2db5
jl 0x10009a5e
inc edi
cmp edi, 0xbe6
jl 0x10009a5b
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x52ce
jl 0x10009a59
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x4d70
jl 0x10009a54
push 2
mov ecx, ebx
pop edi
mov dword [ebp - 0x1c], ecx
cmp edi, 2
jne 0x10009ae2
push 3
pop ecx
push ecx
mov dword [ebp - 0x1c], ecx
pop edi
jmp 0x10009b1a
movzx edx, byte [ebp + edi - 0x2b]
mov eax, edi
sub eax, ecx
sub esp, 0xc
movzx eax, byte [ebp + eax - 0x2e]
movzx ecx, word [ebp + eax*2 - 0x38]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + edi - 0x2c]
add ecx, edx
lea edx, [ebp - 0x1c]
mov word [ebp + eax*2 - 0x38], cx
call fcn.1000938f
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
add edi, 2
cmp edi, 5
jb 0x10009ad3
cmp dword [ebp - 0x30], 0x5f5d
jge 0x10009b36
push str.xlx_xnyekmrh_cre_vyf_clqdeg_lxbo_zfglgghf_rqznlyytl_rlpkttat
call fcn.1004252f
pop ecx
mov dword [ebp - 4], 3
mov dword [ebp - 0x18], 0xcf5
cmp dword [ebp - 0x18], 0xda1
jle 0x10009bd1
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x74], ebx
mov ecx, edi
mov dword [ebp - 0x24], 0x5b4
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x30], ecx
and eax, ecx
lea ecx, [ebp - 0x158]
cdq
push edx
push eax
call fcn.10001a94
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10009b87
mov eax, dword [eax]
push eax
call fcn.1004252f
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x158]
call fcn.100038eb
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
add ecx, edi
dec dword [ebp - 0x24]
mov dword [ebp - 0x30], ecx
jne 0x10009b6d
dec edi
mov dword [ebp - 0x74], edi
cmp edi, 0xffff93ff
mov edi, dword [ebp - 0x34]
jg 0x10009b5e
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x5384
jl 0x10009b5b
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x11bb
jl 0x10009b56
xor eax, eax
cmp dword [ebp - 0x18], 0xc12
mov word [ebp - 0x36], ax
jge 0x10009beb
push str.vmgwandy_nbol_qtkxvijpl_aqwdyabu
call fcn.1004252f
pop ecx
mov dword [ebp - 4], 3
lea ecx, [ebp - 0xdc]
xor eax, eax
mov dword [ebp - 0xc8], 7
mov word [ebp - 0xdc], ax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0xcc], ebx
call fcn.100039d7
mov byte [ebp - 4], 9
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], 0x564
cmp dword [ebp - 0x34], 0x571
jle 0x10009c74
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
and eax, edi
xor eax, ecx
mov ecx, 0x10073998
cdq
push edx
push eax
call fcn.100034ac
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x26df
jl 0x10009c3d
inc edi
cmp edi, 0x30d6
jl 0x10009c38
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x979
jl 0x10009c36
lea eax, [ebp - 0xc4]
push eax
push 0x592a
push esi
push 0x2b31
lea edx, [ebp - 0xdc]
call fcn.100096b8
add esp, 0x10
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x4f0
jge 0x10009cd7
mov edx, str.exoqxxx_wift_ggpgn_xghwb
mov ecx, 0x10073998
call fcn.10005649
jmp 0x10009cd7
push 0x22
mov dword [ebp - 4], 9
mov ecx, ebx
pop eax
push 2
mov dword [ebp - 0x50], 0xfc025400
mov dword [ebp - 0x4c], 0x20201ea
mov word [ebp - 0x48], 0x30f
mov byte [ebp - 0x46], 0x7c
mov word [ebp - 0xa4], ax
pop esi
mov dword [ebp - 0x5c], ecx
cmp esi, 2
jne 0x10009d17
push 3
pop ecx
push ecx
mov dword [ebp - 0x5c], ecx
pop esi
jmp 0x10009d63
movzx edx, byte [ebp + esi - 0x4f]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x52]
movzx ecx, word [ebp + eax*2 - 0xa4]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x50]
add ecx, edx
mov edx, 0x39d
mov word [ebp + eax*2 - 0xa4], cx
lea eax, [ebp - 0x5c]
push eax
push 0x4be5
push 1
push 1
mov cl, 1
call fcn.100093af
mov ecx, dword [ebp - 0x5c]
add esp, 0x10
add esi, 2
cmp esi, 0xb
jb 0x10009d08
xor eax, eax
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x9c], ax
lea ecx, [ebp - 0x110]
mov word [ebp - 0x110], ax
lea eax, [ebp - 0xa4]
push eax
mov dword [ebp - 0x100], ebx
call fcn.100039d7
push ecx
push ecx
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0xdc]
call fcn.10005c10
xor esi, esi
mov byte [ebp - 4], 9
push ebx
inc esi
lea ecx, [ebp - 0x110]
push esi
call fcn.10003df6
xor eax, eax
lea edi, [ebp - 0xa4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x1d]
push eax
push esi
call fcn.100094e1
pop ecx
pop ecx
lea edx, [ebp - 0x8c]
lea ecx, [ebp - 0xdc]
call fcn.100084e2
mov ecx, dword [ebp + 0x10]
push ebx
push esi
mov dword [ecx], eax
lea ecx, [ebp - 0xdc]
call fcn.10003df6
push ebx
push esi
lea ecx, [ebp - 0x128]
call fcn.10003df6
push ebx
push esi
lea ecx, [ebp - 0xc4]
call fcn.10003df6
push ebx
push esi
lea ecx, [ebp - 0x8c]
call fcn.10003df6
lea ecx, [ebp - 0x68]
call fcn.1000ae2d
jmp 0x10009e9c
xor ebx, ebx
push ebx
push esi
lea ecx, [ebp - 0x128]
call fcn.10003df6
push ebx
push 1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 1
call fcn.10003df6
mov eax, dword [ebp - 0x18]
xor esi, esi
inc eax
inc esi
mov dword [ebp - 0x18], eax
jmp 0x10009861
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
jmp 0x10009e1e
mov dword [ecx], 1
jmp 0x10009e9c
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0xffffffff
je 0x10009e9c
push ecx
push 0x5e7
push ecx
push 0x260
push 0x6577
push eax
xor dl, dl
call fcn.10009ed3
add esp, 0x18
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret