Function at 0x1008ed80
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x10163478]
mov edx, ecx
push esi
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
push edi
mov edi, dword [edx + 0x178]
mov dword [ebp - 0x38], eax
mov al, byte [edx + 0x1b2]
mov byte [ebp - 1], al
cmp dword [edi], 0
mov al, byte [edx + 0x1b4]
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], edi
mov byte [ebp - 0xd], al
je 0x1008ede8
push 0x918
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_tables.cpp
push str.splitter___Current__0
call esi
mov edx, dword [ebp - 0x18]
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x14], eax
vxorps xmm1, xmm1, xmm1
lea ecx, [eax + 4]
lea eax, [ebp - 0x12c]
nop word [eax + eax]
lea eax, [eax + 0x28]
vmovups xmmword [eax - 0x2c], xmm1
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [eax - 0x18], xmm0
mov dword [eax - 8], 0
mov dword [eax - 0x1c], 0
sub ecx, 1
jne 0x1008ee00
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [edx + 0x54], eax
jle 0x1008f64f
xor edi, edi
mov dword [ebp - 0x24], edi
xor edx, edx
xor ecx, ecx
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
mov eax, dword [ebp - 0x18]
cmovae ecx, edx
and edx, dword [eax + 0x38]
and ecx, dword [eax + 0x3c]
or edx, ecx
je 0x1008f098
add edi, dword [eax + 0x10]
mov dword [ebp - 0x74], edi
cmp edi, dword [eax + 0x10]
jb 0x1008ee6f
mov ecx, eax
cmp edi, dword [ecx + 0x14]
jb 0x1008ee83
push 0x249
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_internal.h
push str.p___Data__p___DataEnd
call esi
add esp, 0xc
xor eax, eax
cmp byte [ebp - 1], al
setg al
inc eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x1008ee9d
mov al, byte [edi + 0x58]
jmp 0x1008eea0
mov al, byte [edi + 0x59]
movzx edx, al
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], edx
cmp edx, dword [eax + 8]
jl 0x1008eec5
push 0x6b9
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui.h
push str.i___0__i___Size
call esi
mov edx, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 8]
lea eax, [edx + edx*2]
mov dword [ebp - 0x20], eax
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ecx + eax*8]
mov esi, eax
test eax, eax
jle 0x1008ef00
mov edi, dword [ebp - 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x20]
mov eax, dword [edi + eax*8 + 8]
mov edi, dword [ebp - 0x74]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x1008ef00
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
dec dword [eax + ecx*8]
mov esi, dword [eax + ecx*8]
cmp esi, 1
jne 0x1008f07b
test dword [edi], 0x100
mov esi, dword [ebp - 0xc]
jne 0x1008ef46
cmp byte [ebp - 1], 0
jg 0x1008ef26
vmovss xmm0, dword [edi + 0x44]
vmaxss xmm0, xmm0, dword [edi + 0x48]
jmp 0x1008ef3b
test esi, esi
jne 0x1008ef36
vmovss xmm0, dword [edi + 0x40]
vmaxss xmm0, xmm0, dword [edi + 0x48]
jmp 0x1008ef3b
vmovss xmm0, dword [edi + 0x44]
vcomiss xmm0, dword [edi + 0x28]
ja 0x1008f07b
cmp byte [ebp - 0xd], 0
jle 0x1008ef5f
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax + 0x1b4]
cmp dword [ebp - 0x2c], eax
jge 0x1008ef5f
xor ecx, ecx
jmp 0x1008ef64
mov ecx, 1
cmp byte [ebp - 1], 0
jle 0x1008ef72
test esi, esi
jne 0x1008ef72
xor eax, eax
jmp 0x1008ef77
mov eax, 2
lea esi, [eax + ecx]
mov dword [ebp - 0x30], esi
cmp edx, 0x84
jb 0x1008efa0
push 0x949
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_tables.cpp
push str.channel_no____4__64__2_
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 0x28]
add esp, 0xc
lea eax, [esi + esi*4]
lea esi, [ebp - 0x130]
cmp dword [esi + eax*8 + 0x10], 0
lea esi, [esi + eax*8]
jne 0x1008efbf
vmovdqa xmm0, xmmword [0x1014fbf0]
vmovdqu xmmword [esi], xmm0
cmp edx, 0x84
jb 0x1008efe2
push 0x227
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_internal.h
push str.n___BITCOUNT
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 0x28]
add esp, 0xc
mov ecx, edx
and edx, 0x1f
shr ecx, 5
mov eax, dword [esi + ecx*4 + 0x14]
bts eax, edx
mov dword [esi + ecx*4 + 0x14], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc dword [esi + 0x10]
cmp dword [ecx + eax*8], 0
jg 0x1008f022
push 0x6b9
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui.h
push str.i___0__i___Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + eax*8 + 8]
vmovss xmm0, dword [esi]
vmovss xmm4, dword [eax]
vcomiss xmm0, xmm4
vmovss xmm1, dword [eax + 4]
vmovss xmm2, dword [eax + 8]
vmovss xmm3, dword [eax + 0xc]
jbe 0x1008f047
vmovss dword [esi], xmm4
vmovss xmm0, dword [esi + 4]
vcomiss xmm0, xmm1
jbe 0x1008f057
vmovss dword [esi + 4], xmm1
vcomiss xmm2, dword [esi + 8]
jbe 0x1008f063
vmovss dword [esi + 8], xmm2
vcomiss xmm3, dword [esi + 0xc]
jbe 0x1008f06f
vmovss dword [esi + 0xc], xmm3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
bts ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0xc]
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x34]
jl 0x1008ee94
mov byte [edi + 0x57], 0xff
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
add edi, 0x68
mov ecx, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], edi
cmp eax, dword [ecx + 0x54]
jl 0x1008ee37
cmp dword [ebp - 0x14], 0
je 0x1008f64f
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
add eax, 0x1fa4
mov dword [ebp - 0x24], eax
mov esi, dword [ecx + 4]
sub esi, 2
mov edi, dword [eax + 4]
cmp esi, edi
jle 0x1008f0ff
test edi, edi
je 0x1008f0e7
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x1008f0ec
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, dword [ebp - 0x24]
push eax
call fcn.10088490
mov eax, dword [ebp - 0x24]
mov dword [eax], esi
mov edx, 2
mov eax, dword [ebp - 0x38]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
mov ecx, dword [eax + 0x1fac]
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x24], edx
mov esi, dword [eax + 4]
dec esi
mov dword [ebp - 0x34], esi
cmp esi, edx
jl 0x1008f18c
mov eax, edx
mov edi, edx
or eax, 0x1f
mov ecx, esi
and ecx, 0x1f
and edi, 0x1f
cmp esi, eax
mov esi, edx
mov eax, 0x1f
cmovg ecx, eax
xor edx, edx
inc ecx
sar esi, 5
bts edx, ecx
xor eax, eax
cmp ecx, 0x20
cmovae eax, edx
xor ecx, ecx
xor edx, eax
bts ecx, edi
dec edx
xor eax, eax
cmp edi, 0x20
cmovae eax, ecx
xor ecx, eax
neg ecx
and edx, ecx
or dword [ebp + esi*4 - 0x70], edx
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x34]
add edx, 0x20
and edx, 0xffffffe0
mov dword [ebp - 0x24], edx
cmp edx, esi
jle 0x1008f133
mov edx, dword [ebp - 0x18]
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
movzx edi, byte [edx + 0x1b8]
cmp edi, 0x84
jb 0x1008f1bb
push 0x228
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_internal.h
push str.n___BITCOUNT
call esi
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov ecx, edi
and edi, 0x1f
shr ecx, 5
mov eax, dword [ebp + ecx*4 - 0x70]
btr eax, edi
cmp byte [ebp - 1], 0
mov dword [ebp + ecx*4 - 0x70], eax
jle 0x1008f1f1
cmp byte [edx + 0x1b8], 1
jne 0x1008f1f1
push 0x974
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_tables.cpp
push str.has_freeze_v__false__table__Bg2DrawChannelUnfrozen___TABLE_DRAW_CHANNEL_BG2_FROZEN
call esi
add esp, 0xc
mov dl, byte [ebp - 1]
xor eax, eax
mov ecx, dword [ebp - 8]
test dl, dl
mov dword [ebp - 0x34], 1
setg al
add eax, 2
mov ecx, dword [ecx + 4]
sub ecx, eax
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edi
vmovdqu xmm0, xmmword [eax + 0x144]
vmovdqu xmmword [ebp - 0x90], xmm0
jmp 0x1008f236
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
lea ecx, [edi + edi*4]
shl ecx, 3
mov eax, dword [ebp + ecx - 0x120]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1008f4c0
vmovdqu xmm0, xmmword [ebp + ecx - 0x130]
mov edx, edi
vmovdqu xmmword [ebp - 0x50], xmm0
and edx, 1
je 0x1008f269
cmp byte [ebp - 0xd], 0
jg 0x1008f27b
vmovss xmm0, dword [ebp - 0x50]
vminss xmm0, xmm0, dword [ebp - 0x90]
vmovss dword [ebp - 0x50], xmm0
mov eax, edi
and eax, 2
je 0x1008f288
cmp byte [ebp - 1], 0
jg 0x1008f29a
vmovss xmm0, dword [ebp - 0x4c]
vminss xmm0, xmm0, dword [ebp - 0x8c]
vmovss dword [ebp - 0x4c], xmm0
test edx, edx
je 0x1008f2b0
vmovss xmm0, dword [ebp - 0x48]
vmaxss xmm0, xmm0, dword [ebp - 0x88]
vmovss dword [ebp - 0x48], xmm0
test eax, eax
je 0x1008f2d2
mov eax, dword [ebp - 0x18]
test dword [eax + 4], 0x20000
jne 0x1008f2d2
vmovss xmm0, dword [ebp - 0x44]
vmaxss xmm0, xmm0, dword [ebp - 0x84]
vmovss dword [ebp - 0x44], xmm0
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x11c]
sub eax, dword [ebp + ecx - 0x120]
add edx, ecx
mov edi, dword [ebp - 0x70]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], edx
mov eax, dword [edx]
andn edi, eax, edi
mov eax, dword [ebp + ecx - 0x118]
mov dword [ebp - 0x70], edi
mov edi, dword [ebp - 0x6c]
andn edi, eax, edi
mov eax, dword [ebp + ecx - 0x114]
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x68]
andn edi, eax, edi
mov eax, dword [ebp + ecx - 0x110]
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x64]
andn edi, eax, edi
mov eax, dword [ebp + ecx - 0x10c]
mov ecx, dword [ebp - 0x60]
andn ecx, eax, ecx
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x64], edi
xor edi, edi
cmp dword [ecx + 4], edi
jle 0x1008f4b8
mov dword [ebp - 0x28], edi
jmp 0x1008f366
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
cmp dword [ebp - 0x14], 0
je 0x1008f4b8
cmp edi, 0x84
jl 0x1008f392
push 0x226
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_internal.h
push str.n___BITCOUNT
call esi
mov edx, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [ebp - 8]
mov eax, edi
mov esi, edi
and eax, 0x1f
sar esi, 5
mov dword [ebp - 0x30], eax
shlx eax, dword [ebp - 0x34], eax
test dword [edx + esi*4], eax
je 0x1008f4aa
cmp edi, 0x84
jl 0x1008f3d1
push 0x228
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_internal.h
push str.n___BITCOUNT
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [edx + esi*4]
mov ecx, dword [ebp - 0x30]
btr eax, ecx
dec dword [ebp - 0x14]
mov dword [edx + esi*4], eax
mov esi, dword [ebp - 8]
test edi, edi
js 0x1008f3ec
cmp edi, dword [esi + 8]
jl 0x1008f404
push 0x6b9
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui.h
push str.i___0__i___Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov esi, dword [esi + 0x10]
add esi, dword [ebp - 0x28]
cmp dword [esi], 1
jne 0x1008f441
mov eax, dword [esi + 8]
vmovss xmm0, dword [eax]
vcomiss xmm0, dword [ebp - 0x50]
vmovss xmm1, dword [eax + 4]
jb 0x1008f441
vcomiss xmm1, dword [ebp - 0x4c]
jb 0x1008f441
vmovss xmm0, dword [ebp - 0x48]
vcomiss xmm0, dword [eax + 8]
jb 0x1008f441
vmovss xmm0, dword [ebp - 0x44]
vcomiss xmm0, dword [eax + 0xc]
jae 0x1008f459
push 0x99f
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_tables.cpp
push str.channel___CmdBuffer.Size__1__merge_clip_rect.Contains_ImRect_channel___CmdBuffer_0_.ClipRect__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
cmp dword [esi], 0
vmovdqu xmm0, xmmword [ebp - 0x50]
jg 0x1008f480
push 0x6b9
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui.h
push str.i___0__i___Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
vmovdqu xmm0, xmmword [ebp - 0x50]
add esp, 0xc
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x2c]
vmovdqu xmmword [eax], xmm0
vmovdqu xmm0, xmmword [esi]
mov eax, ecx
add ecx, 0x18
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
vmovdqu xmmword [eax], xmm0
vmovq xmm0, qword [esi + 0x10]
vmovq qword [eax + 0x10], xmm0
add dword [ebp - 0x28], 0x18
inc edi
cmp edi, dword [ecx + 4]
jl 0x1008f360
mov edi, dword [ebp - 0x1c]
mov dl, byte [ebp - 1]
jmp 0x1008f4c3
mov ecx, dword [ebp - 8]
cmp edi, 1
jne 0x1008f532
test dl, dl
jle 0x1008f532
mov eax, dword [ebp - 0xc]
mov edx, eax
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add eax, 0x18
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], edx
movzx edi, byte [eax + 0x1b8]
cmp edi, dword [ecx + 8]
jl 0x1008f506
push 0x6b9
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui.h
push str.i___0__i___Size
call esi
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 8]
lea ecx, [edi + edi*2]
mov edi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x1c], edi
mov eax, dword [eax + 0x10]
vmovdqu xmm0, xmmword [eax + ecx*8]
vmovdqu xmmword [edx], xmm0
vmovq xmm0, qword [eax + ecx*8 + 0x10]
vmovq qword [edx + 0x10], xmm0
mov dl, byte [ebp - 1]
jmp 0x1008f236
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 4
jl 0x1008f230
xor esi, esi
cmp dword [ecx + 4], esi
jle 0x1008f5f7
xor edx, edx
mov dword [ebp - 0x14], edx
nop
cmp dword [ebp - 0x20], 0
je 0x1008f5f7
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
cmp esi, 0x84
jl 0x1008f57f
push 0x226
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_internal.h
push str.n___BITCOUNT
call edi
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov eax, esi
mov ecx, 1
and eax, 0x1f
shlx ecx, ecx, eax
mov eax, esi
sar eax, 5
test dword [ebp + eax*4 - 0x70], ecx
je 0x1008f5e4
test esi, esi
js 0x1008f5a5
mov eax, dword [ebp - 8]
cmp esi, dword [eax + 8]
jl 0x1008f5bc
push 0x6b9
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui.h
push str.i___0__i___Size
call edi
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov ecx, eax
add eax, 0x18
dec dword [ebp - 0x20]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
vmovdqu xmm0, xmmword [eax + edx]
vmovdqu xmmword [ecx], xmm0
vmovq xmm0, qword [eax + edx + 0x10]
vmovq qword [ecx + 0x10], xmm0
mov eax, dword [ebp - 8]
inc esi
add edx, 0x18
mov dword [ebp - 0x14], edx
cmp esi, dword [eax + 4]
jl 0x1008f550
mov esi, dword [ebp - 0x38]
mov eax, dword [esi + 0x1fa4]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x1fac]
lea eax, [eax + ecx*8]
cmp dword [ebp - 0xc], eax
je 0x1008f629
push 0x9b3
push str.D:KanyeHook_main_srcTeamFortress2TeamFortress2FeaturesMenuImGuiimgui_tables.cpp
push str.dst_tmp__g.DrawChannelsTempMergeBuffer.Data__g.DrawChannelsTempMergeBuffer.Size
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*2]
lea eax, [eax*8 - 0x30]
push eax
mov eax, dword [ecx + 0x10]
push dword [esi + 0x1fac]
add eax, 0x30
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret