Function at 0x100f89f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x128
mov eax, dword [0x10180e00]
xor eax, esp
mov dword [esp + 0x124], eax
mov edx, dword [esp + 0x12c]
mov eax, dword [0x10180f98]
push ebx
push ebp
mov ebp, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
push esi
mov esi, dword [edx + 0x174]
mov dword [esp + 0x78], eax
mov al, byte [edx + 0x1c6]
mov byte [esp + 0xf], al
cmp dword [esi], 0
mov al, byte [edx + 0x1c8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], esi
mov byte [esp + 0x1f], al
mov dword [esp + 0x10], ebp
je 0x100f8a60
push 0x93c
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0._third_party_imgui_master_imgui_imgui_tables.cpp
push str.splitter___Current__0
call ebp
mov edx, dword [esp + 0x30]
add esp, 0xc
xor ebx, ebx
lea eax, [esp + 0x94]
mov dword [esp + 0x20], ebx
lea ecx, [ebx + 4]
mov dword [eax - 4], ebx
xorps xmm0, xmm0
mov dword [eax], ebx
lea eax, [eax + 0x28]
mov dword [eax - 0x24], ebx
mov dword [eax - 0x20], ebx
movups xmmword [eax - 0x18], xmm0
mov dword [eax - 8], ebx
mov dword [eax - 0x1c], ebx
sub ecx, 1
jne 0x100f8a70
xor eax, eax
mov dword [esp + 0x28], eax
cmp dword [edx + 0x54], eax
jle 0x100f9388
push edi
xor edi, edi
mov dword [esp + 0x30], 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 [esp + 0x28]
cmovae ecx, edx
and edx, dword [eax + 0x38]
and ecx, dword [eax + 0x3c]
or edx, ecx
je 0x100f8d02
add edi, dword [eax + 0x10]
cmp edi, dword [eax + 0x10]
jb 0x100f8adc
mov ecx, eax
cmp edi, dword [ecx + 0x14]
jb 0x100f8af0
push 0x267
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.p___Data__p___DataEnd
call ebp
add esp, 0xc
xor eax, eax
cmp byte [esp + 0x13], al
setg al
inc eax
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x18], eax
test eax, eax
jne 0x100f8b0d
mov al, byte [edi + 0x58]
jmp 0x100f8b10
mov al, byte [edi + 0x59]
movzx ebx, al
cmp ebx, dword [esi + 8]
jl 0x100f8b2c
push 0x6fa
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui.h
push str.i___0__i___Size
call ebp
add esp, 0xc
mov esi, dword [esi + 0x10]
lea ebp, [ebx + ebx*2]
mov dword [esp + 0x3c], esi
mov eax, dword [esi + ebp*8]
mov edx, eax
test eax, eax
jle 0x100f8b5d
lea ecx, [eax + eax*4]
mov eax, dword [esi + ebp*8 + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x100f8b5d
lea ecx, [edx + edx*4]
cmp dword [eax + ecx*8 - 8], 0
jne 0x100f8b5d
dec dword [esi + ebp*8]
mov edx, dword [esi + ebp*8]
cmp edx, 1
jne 0x100f8cdb
test dword [edi], 0x100
mov edx, dword [esp + 0x18]
jne 0x100f8ba4
cmp byte [esp + 0x13], 0
jg 0x100f8b85
movss xmm0, dword [edi + 0x44]
maxss xmm0, dword [edi + 0x48]
jmp 0x100f8b9a
test edx, edx
jne 0x100f8b95
movss xmm0, dword [edi + 0x40]
maxss xmm0, dword [edi + 0x48]
jmp 0x100f8b9a
movss xmm0, dword [edi + 0x44]
comiss xmm0, dword [edi + 0x28]
ja 0x100f8cdb
cmp byte [esp + 0x23], 0
jle 0x100f8bc0
mov eax, dword [esp + 0x28]
movsx eax, byte [eax + 0x1c8]
cmp dword [esp + 0x2c], eax
jge 0x100f8bc0
xor ecx, ecx
jmp 0x100f8bc5
mov ecx, 1
cmp byte [esp + 0x13], 0
jle 0x100f8bd4
test edx, edx
jne 0x100f8bd4
xor eax, eax
jmp 0x100f8bd9
mov eax, 2
lea esi, [eax + ecx]
mov dword [esp + 0x38], esi
cmp ebx, 0x84
jb 0x100f8bfe
push 0x96d
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0._third_party_imgui_master_imgui_imgui_tables.cpp
push str.channel_no____4__64__2_
call dword [esp + 0x20]
add esp, 0xc
lea eax, [esi + esi*4]
lea esi, [esp + 0x94]
cmp dword [esi + eax*8 + 0x10], 0
lea esi, [esi + eax*8]
jne 0x100f8c2d
mov dword [esi], 0x7f7fffff
mov dword [esi + 4], 0x7f7fffff
mov dword [esi + 8], 0xff7fffff
mov dword [esi + 0xc], 0xff7fffff
cmp ebx, 0x84
jb 0x100f8c4b
push 0x244
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.n___0__n___BITCOUNT
call dword [esp + 0x20]
add esp, 0xc
mov ecx, ebx
and ebx, 0x1f
shr ecx, 5
mov eax, dword [esi + ecx*4 + 0x14]
bts eax, ebx
mov ebx, dword [esp + 0x3c]
mov dword [esi + ecx*4 + 0x14], eax
inc dword [esi + 0x10]
cmp dword [ebx + ebp*8], 0
jg 0x100f8c81
push 0x6fa
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui.h
push str.i___0__i___Size
call dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebx + ebp*8 + 8]
movss xmm0, dword [esi]
movss xmm4, dword [eax]
comiss xmm0, xmm4
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
movss xmm3, dword [eax + 0xc]
jbe 0x100f8ca5
movss dword [esi], xmm4
movss xmm0, dword [esi + 4]
comiss xmm0, xmm1
jbe 0x100f8cb4
movss dword [esi + 4], xmm1
comiss xmm2, dword [esi + 8]
jbe 0x100f8cbf
movss dword [esi + 8], xmm2
comiss xmm3, dword [esi + 0xc]
jbe 0x100f8cca
movss dword [esi + 0xc], xmm3
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
bts ebx, eax
mov dword [esp + 0x24], ebx
jmp 0x100f8cdf
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
inc eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x34]
jl 0x100f8b04
mov byte [edi + 0x57], 0xff
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add edi, 0x68
mov ecx, dword [esp + 0x28]
inc eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
cmp eax, dword [ecx + 0x54]
jl 0x100f8aa6
test ebx, ebx
je 0x100f9387
mov ebp, dword [esp + 0x7c]
mov esi, dword [esi + 4]
sub esi, 2
mov edi, dword [ebp + 0x4a14]
cmp esi, edi
jle 0x100f8d64
test edi, edi
je 0x100f8d4c
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x100f8d51
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [ebp + 0x4a10]
push eax
call fcn.101027d0
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
mov dword [ebp + 0x4a10], esi
mov ecx, dword [ebp + 0x4a18]
mov dword [esp + 0x18], ecx
mov ebp, dword [eax + 4]
mov dword [esp + 0x90], 0
movups xmmword [esp + 0x80], xmm0
cmp ebp, 2
jle 0x100f8d9e
cmp ebp, 0x84
jle 0x100f8db4
push 0x246
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.n___0__n___BITCOUNT__n2___n__n2___BITCOUNT
call dword [esp + 0x20]
add esp, 0xc
mov ebx, 2
dec ebp
cmp ebp, ebx
jl 0x100f8e14
lea edx, [ebx + 0x1d]
mov eax, ebx
mov edi, ebx
or eax, 0x1f
and edi, 0x1f
mov ecx, ebp
mov esi, ebx
and ecx, 0x1f
cmp ebp, eax
cmovg ecx, edx
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
add ebx, 0x20
xor ecx, eax
and ebx, 0xffffffe0
neg ecx
and edx, ecx
or dword [esp + esi*4 + 0x80], edx
mov edx, 0x1f
cmp ebx, ebp
jle 0x100f8dc1
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
movzx esi, byte [ebx + 0x1cc]
cmp esi, 0x84
jb 0x100f8e3f
push 0x245
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.n___0__n___BITCOUNT
call ebp
add esp, 0xc
mov ecx, esi
and esi, 0x1f
shr ecx, 5
mov eax, dword [esp + ecx*4 + 0x80]
btr eax, esi
cmp byte [esp + 0x13], 0
mov dword [esp + ecx*4 + 0x80], eax
jle 0x100f8e7c
cmp byte [ebx + 0x1cc], 1
jne 0x100f8e7c
push 0x998
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0._third_party_imgui_master_imgui_imgui_tables.cpp
push str.has_freeze_v__false__table__Bg2DrawChannelUnfrozen___TABLE_DRAW_CHANNEL_BG2_FROZEN
call ebp
add esp, 0xc
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x13], al
movups xmm0, xmmword [ebx + 0x140]
mov esi, dword [esp + 0x90]
setg al
mov ecx, dword [edx + 4]
add eax, 2
sub ecx, eax
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x8c]
xor edi, edi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x88]
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x84]
movss xmm2, dword [esp + 0x74]
movss xmm3, dword [esp + 0x70]
movss xmm4, dword [esp + 0x6c]
movss xmm1, dword [esp + 0x68]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], ecx
movss dword [esp + 0x34], xmm2
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x3c], xmm4
movss dword [esp + 0x78], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], edi
nop
lea eax, [edi + edi*4]
shl eax, 3
mov ebx, dword [esp + eax + 0xa4]
mov dword [esp + 0x64], ebx
test ebx, ebx
je 0x100f91f1
lea edx, [esp + 0x94]
mov ecx, edi
add edx, eax
mov dword [esp + 0x60], edx
movups xmm0, xmmword [edx]
movups xmmword [esp + 0x68], xmm0
and ecx, 1
je 0x100f8f54
cmp byte [esp + 0x23], 0
jle 0x100f8f54
movss xmm0, dword [esp + 0x68]
jmp 0x100f8f5d
movaps xmm0, xmm1
minss xmm0, dword [esp + 0x68]
mov eax, edi
movss dword [esp + 0x50], xmm0
and eax, 2
je 0x100f8f79
cmp byte [esp + 0x13], 0
jle 0x100f8f79
movss xmm0, dword [esp + 0x6c]
jmp 0x100f8f82
movaps xmm0, xmm4
minss xmm0, dword [esp + 0x6c]
movss dword [esp + 0x54], xmm0
test ecx, ecx
je 0x100f8f97
movaps xmm0, xmm3
maxss xmm0, dword [esp + 0x70]
jmp 0x100f8f9d
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0x58], xmm0
test eax, eax
je 0x100f8fbf
mov eax, dword [esp + 0x28]
test dword [eax + 4], 0x20000
jne 0x100f8fbf
movaps xmm0, xmm2
maxss xmm0, dword [esp + 0x74]
jmp 0x100f8fc5
movss xmm0, dword [esp + 0x74]
mov eax, dword [edx + 0x14]
not eax
mov ecx, dword [esp + 0x14]
and dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov eax, dword [edx + 0x18]
not eax
sub ecx, dword [edx + 0x10]
and dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x84], eax
mov eax, dword [edx + 0x1c]
not eax
movss dword [esp + 0x5c], xmm0
and dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x88], eax
mov eax, dword [edx + 0x20]
not eax
mov dword [esp + 0x14], ecx
and dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x24]
not eax
and esi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x90], esi
xor esi, esi
cmp dword [eax + 4], esi
jle 0x100f91eb
mov dword [esp + 0x30], esi
nop dword [eax + eax]
test ebx, ebx
je 0x100f91c5
test esi, esi
js 0x100f9064
cmp esi, 0x84
jl 0x100f907c
push 0x243
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.n___0__n___BITCOUNT
call ebp
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov ebx, esi
mov edi, esi
and ebx, 0x1f
sar edi, 5
mov eax, 1
mov ecx, ebx
shl eax, cl
test dword [edx + edi*4 + 0x14], eax
je 0x100f91ae
test esi, esi
js 0x100f90a5
cmp esi, 0x84
jl 0x100f90bd
push 0x245
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.n___0__n___BITCOUNT
call ebp
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov eax, dword [edx + edi*4 + 0x14]
btr eax, ebx
mov ebx, dword [esp + 0x64]
dec ebx
mov dword [edx + edi*4 + 0x14], eax
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x64], ebx
test esi, esi
js 0x100f90de
cmp esi, dword [edi + 8]
jl 0x100f90f2
push 0x6fa
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui.h
push str.i___0__i___Size
call ebp
add esp, 0xc
mov edi, dword [edi + 0x10]
add edi, dword [esp + 0x30]
cmp dword [edi], 1
jne 0x100f9130
mov eax, dword [edi + 8]
movss xmm0, dword [eax]
comiss xmm0, dword [esp + 0x50]
movss xmm1, dword [eax + 4]
jb 0x100f9130
comiss xmm1, dword [esp + 0x54]
jb 0x100f9130
movss xmm0, dword [esp + 0x58]
comiss xmm0, dword [eax + 8]
jb 0x100f9130
movss xmm0, dword [esp + 0x5c]
comiss xmm0, dword [eax + 0xc]
jae 0x100f9144
push 0x9c3
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0._third_party_imgui_master_imgui_imgui_tables.cpp
push str.channel___CmdBuffer.Size__1__merge_clip_rect.Contains_ImRect_channel___CmdBuffer_0_.ClipRect__
call ebp
add esp, 0xc
cmp dword [edi], 0
jg 0x100f915d
push 0x6fa
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui.h
push str.i___0__i___Size
call ebp
add esp, 0xc
mov eax, dword [edi + 8]
movss xmm0, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x54]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x58]
movss dword [eax + 8], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [eax + 0xc], xmm0
mov eax, ecx
movups xmm0, xmmword [edi]
add ecx, 0x18
mov dword [esp + 0x18], ecx
movups xmmword [eax], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [eax + 0x10], xmm0
jmp 0x100f91b2
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
inc esi
add dword [esp + 0x30], 0x18
cmp esi, dword [eax + 4]
jl 0x100f9050
movss xmm1, dword [esp + 0x78]
movss xmm2, dword [esp + 0x34]
movss xmm3, dword [esp + 0x38]
movss xmm4, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x100f91ed
mov edx, eax
mov esi, dword [esp + 0x24]
cmp edi, 1
jne 0x100f9278
cmp byte [esp + 0x13], 0
jle 0x100f9278
mov eax, dword [esp + 0x18]
mov edi, eax
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
movzx esi, byte [eax + 0x1cc]
cmp esi, dword [edx + 8]
jl 0x100f9236
push 0x6fa
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui.h
push str.i___0__i___Size
call ebp
mov edx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [edx + 0x10]
lea ecx, [esi + esi*2]
movss xmm1, dword [esp + 0x78]
movss xmm2, dword [esp + 0x34]
movss xmm3, dword [esp + 0x38]
movups xmm0, xmmword [eax + ecx*8]
mov esi, dword [esp + 0x24]
movss xmm4, dword [esp + 0x3c]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + ecx*8 + 0x10]
mov ecx, dword [esp + 0x14]
movq qword [edi + 0x10], xmm0
mov edi, dword [esp + 0x2c]
inc edi
jmp 0x100f8f0a
inc edi
mov dword [esp + 0x2c], edi
cmp edi, 4
jl 0x100f8f10
mov ebx, dword [esp + 0x1c]
xor esi, esi
cmp dword [ebx + 4], esi
jle 0x100f9334
xor edi, edi
test ecx, ecx
je 0x100f9334
test esi, esi
js 0x100f92ab
cmp esi, 0x84
jl 0x100f92bf
push 0x243
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui_internal.h
push str.n___0__n___BITCOUNT
call ebp
add esp, 0xc
mov eax, esi
mov ecx, esi
and ecx, 0x1f
sar eax, 5
mov edx, 1
shl edx, cl
test dword [esp + eax*4 + 0x80], edx
je 0x100f9323
test esi, esi
js 0x100f92e2
cmp esi, dword [ebx + 8]
jl 0x100f92f6
push 0x6fa
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0_third_partyimgui_masterimguiimgui.h
push str.i___0__i___Size
call ebp
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, eax
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x10]
movups xmm0, xmmword [eax + edi]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + edi + 0x10]
movq qword [ecx + 0x10], xmm0
mov ecx, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x14], ecx
jmp 0x100f9327
mov ecx, dword [esp + 0x14]
inc esi
add edi, 0x18
cmp esi, dword [ebx + 4]
jl 0x100f9297
mov esi, dword [esp + 0x7c]
mov eax, dword [esi + 0x4a10]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x4a18]
lea eax, [eax + ecx*8]
cmp dword [esp + 0x18], eax
je 0x100f9364
push 0x9d7
push str.C:UsersFrank.cargo_registry_srcindex.crates.io_6f17d22bba15001fimgui_sys_0.11.0._third_party_imgui_master_imgui_imgui_tables.cpp
push str.dst_tmp__g.DrawChannelsTempMergeBuffer.Data__g.DrawChannelsTempMergeBuffer.Size
call ebp
add esp, 0xc
mov eax, dword [ebx + 4]
lea eax, [eax + eax*2]
lea eax, [eax*8 - 0x30]
push eax
mov eax, dword [ebx + 0x10]
push dword [esi + 0x4a18]
add eax, 0x30
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
pop edi
mov ecx, dword [esp + 0x130]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1010cbd8
add esp, 0x128
ret