Function at 0x100ab2a6
Capabilities:
Packed with generic packer

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [0x1029f900]
xor eax, esp
mov dword [esp + 0x10], eax
mov edi, dword [0x102a05a0]
mov eax, dword [edi + 0x19b4]
cmp eax, dword [edi + 0x19b0]
je 0x100ab818
cmp dword [edi + 0x19ec], 2
jl 0x100ab07e
nop word cs:[eax + eax]
call fcn.100abbc0
cmp dword [edi + 0x19ec], 1
jg 0x100ab070
mov eax, dword [edi + 0xdc]
test eax, eax
je 0x100ab10c
vmovss xmm2, dword [edi + 0x2db0]
vucomiss xmm2, dword [0x10146f98]
jne 0x100ab0b2
jp 0x100ab0b2
vmovss xmm0, dword [edi + 0x2da8]
vmovss xmm1, dword [edi + 0x2dac]
jmp 0x100ab0e5
vmovss xmm3, dword [edi + 0x2db4]
vmovss xmm0, dword [edi + 0x2da8]
vmovss xmm1, dword [edi + 0x2dac]
vsubss xmm3, xmm3, xmm1
vsubss xmm2, xmm2, xmm0
vmulss xmm3, xmm3, xmm3
vfmadd231ss xmm3, xmm2, xmm2
vucomiss xmm3, dword [0x1014a17c]
jbe 0x100ab10c
vcvttss2si ecx, xmm1
vcvttss2si edx, xmm0
push ecx
push edx
call eax
add esp, 8
mov eax, dword [edi + 0x2da8]
mov ecx, dword [edi + 0x2dac]
mov dword [edi + 0x2db4], ecx
mov dword [edi + 0x2db0], eax
mov byte [edi + 0x19bd], 0
mov eax, dword [edi + 0x1a08]
test eax, eax
je 0x100ab127
cmp byte [eax + 0x7c], 0
jne 0x100ab127
mov byte [eax + 0x7a], 0
call fcn.100abbc0
mov edx, dword [0x102a05a0]
cmp dword [edx + 0x1c40], 0
mov dword [esp + 4], edx
je 0x100ab432
vmovss xmm0, dword [0x1014a180]
vucomiss xmm0, dword [edx + 0x1c4c]
ja 0x100ab432
cmp dword [edx + 0x1c48], 0
jne 0x100ab21c
mov ecx, 0xffffffff
mov bl, 0x23
mov edx, 0xffffffed
mov eax, 0xffffffff
jmp 0x100ab195
movzx esi, bh
movzx ebp, al
shr eax, 8
xor ebp, esi
xor eax, dword [ebp*4 + 0x101497fc]
inc edx
je 0x100ab1b3
mov bh, bl
mov bl, byte [edx + str.lower_chest]
cmp bh, 0x23
jne 0x100ab180
cmp bl, 0x23
jne 0x100ab180
cmp byte [edx + 0x1016a039], 0x23
cmove eax, ecx
jmp 0x100ab180
not eax
mov ecx, dword [esp + 4]
mov esi, dword [ecx + 0x19f8]
mov ebx, dword [ecx + 0x1a00]
mov ecx, ebx
mov edx, esi
mov dword [esp], esi
test esi, esi
je 0x100ab1fd
mov ecx, ebx
mov edx, dword [esp]
nop word cs:[eax + eax]
mov ebp, edx
shr ebp, 1
mov esi, ebp
not esi
add esi, edx
cmp dword [ecx + ebp*8], eax
lea edx, [ecx + ebp*8 + 8]
cmovae esi, ebp
cmovb ecx, edx
mov edx, esi
test esi, esi
jne 0x100ab1e0
mov edx, dword [esp]
lea esi, [ebx + edx*8]
xor edx, edx
cmp ecx, esi
je 0x100ab210
cmp dword [ecx], eax
jne 0x100ab210
mov edx, dword [ecx + 4]
mov eax, dword [esp + 4]
mov dword [eax + 0x1c48], edx
mov edx, eax
vmovaps xmm0, xmmword [0x1014a190]
vmovups xmmword [edx + 0x1acc], xmm0
or byte [edx + 0x1a88], 0x11
vmovsd xmm0, qword [edx + 0x10]
vbroadcastss xmm1, dword [0x101478fc]
vmulps xmm1, xmm0, xmm1
vmovlps qword [edx + 0x1ac4], xmm1
vbroadcastss xmm1, dword [0x10145a98]
vmulps xmm0, xmm0, xmm1
vmovlps qword [edx + 0x1a98], xmm0
mov dword [edx + 0x1aa0], 0x3f000000
mov dword [edx + 0x1aa4], 0x3f000000
mov dword [edx + 0x1a8c], 1
vmovsd xmm0, qword [edx + 0x151c]
vaddps xmm0, xmm0, xmm0
vmovlps qword [esp + 8], xmm0
lea eax, [esp + 8]
push eax
push 1
call fcn.1009c9a0
add esp, 8
push 0xc1347
push 0
push str.NavWindowingList
call fcn.100a5570
mov edx, dword [esp + 0x10]
add esp, 0xc
mov ebp, dword [edx + 0x19d4]
test ebp, ebp
jg 0x100ab37e
call fcn.100abbc0
mov eax, dword [0x102a05a0]
mov edx, dword [eax + 0x1b08]
mov ecx, dword [eax + 0x1b10]
dec edx
lea edx, [edx + edx*2]
mov ebp, dword [ecx + edx*4]
lea esi, [ebp*2]
add esi, ebp
mov ebx, dword [esi*4 + 0x10149cb4]
mov esi, 0x1f9bcd
bt esi, ebp
jb 0x100ab419
mov esi, 0x606432
bt esi, ebp
jae 0x100ab428
vmovss xmm0, dword [ecx + edx*4 + 4]
vmovss dword [eax + ebx + 0x1518], xmm0
vmovss xmm0, dword [ecx + edx*4 + 8]
vmovss dword [eax + ebx + 0x151c], xmm0
jmp 0x100ab428
mov edx, str.__Untitled__
vxorps xmm0, xmm0, xmm0
vmovlps qword [esp + 8], xmm0
xor eax, eax
mov esi, dword [esp + 4]
cmp dword [esi + 0x1c40], ebx
sete al
lea ecx, [esp + 8]
push ecx
push 0
push eax
push edx
call fcn.100cb3c0
mov edx, esi
add esp, 0x10
nop word cs:[eax + eax]
lea eax, [ebp - 1]
cmp ebp, 1
mov ebp, eax
jle 0x100ab2c7
mov eax, dword [edx + 0x19dc]
mov ebx, dword [eax + ebp*4 - 4]
cmp byte [ebx + 0x7a], 0
je 0x100ab370
cmp dword [ebx + 0x2f8], ebx
jne 0x100ab370
mov ecx, dword [ebx + 8]
test ecx, 0x80000
jne 0x100ab370
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x100ab3dc
mov edx, eax
jmp 0x100ab3bc
cmp byte [edx + 1], 0x23
je 0x100ab3c8
inc edx
cmp edx, 0xffffffff
je 0x100ab3d3
movzx esi, byte [edx]
cmp esi, 0x23
je 0x100ab3b0
test esi, esi
jne 0x100ab3b6
cmp eax, edx
je 0x100ab3dc
mov edx, eax
jmp 0x100ab338
mov edx, 0xffffffff
cmp eax, edx
jne 0x100ab3cc
mov edx, str.__Popup__
test ecx, 0x4000000
jne 0x100ab338
test ecx, 0x400
je 0x100ab333
push str.MainMenuBar
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
jne 0x100ab333
mov edx, str.__Main_menu_bar__
jmp 0x100ab338
vmovss xmm0, dword [ecx + edx*4 + 4]
vmovss dword [eax + ebx + 0x1518], xmm0
dec dword [eax + 0x1b08]
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x1c38]
test eax, eax
je 0x100ab448
cmp dword [edx + 0x1b38], eax
je 0x100ab82e
cmp byte [edi + 0x1db0], 0
mov eax, dword [edi + 0x19b0]
je 0x100ab58b
movzx ecx, byte [edi + 0x1df6]
mov edx, dword [edi + 0x1dd0]
inc edx
cmp edx, eax
jge 0x100ab493
test byte [edi + 0x1db4], 0x20
mov esi, dword [0x102a05a0]
jne 0x100ab4a7
mov edx, dword [edi + 0x1dbc]
cmp byte [esi + edx + 0xf0], 0
sete dl
test cl, cl
je 0x100ab499
jmp 0x100ab4a1
xor edx, edx
test cl, cl
jne 0x100ab4a1
test dl, dl
je 0x100ab556
mov esi, dword [0x102a05a0]
mov byte [esi + 0x1db0], 0
vxorps xmm0, xmm0, xmm0
vmovups ymmword [esi + 0x1dd4], ymm0
mov byte [esi + 0x1df4], 0
vxorps xmm1, xmm1, xmm1
vmovups xmmword [esi + 0x1dc0], xmm1
mov dword [esi + 0x1dd0], 0xffffffff
mov word [esi + 0x1df5], 0
vmovaps xmm0, xmmword [0x1014a1a0]
vmovups xmmword [esi + 0x1e0c], xmm0
mov dword [esi + 0x1e1c], 0xffffffff
mov eax, dword [esi + 0x1e2c]
test eax, eax
je 0x100ab53f
mov dword [esi + 0x1e28], 0
mov dword [esi + 0x1e24], 0
dec dword [esi + 0x374]
push dword [0x102a05a8]
push eax
vzeroupper
call dword [0x1029f8b0]
vxorps xmm1, xmm1, xmm1
add esp, 8
mov dword [esi + 0x1e2c], 0
vmovups xmmword [esi + 0x1e30], xmm1
mov eax, dword [edi + 0x19b0]
cmp byte [edi + 0x1db0], 0
je 0x100ab58b
cmp dword [edi + 0x1db8], eax
jge 0x100ab58b
test byte [edi + 0x1db4], 1
jne 0x100ab58b
mov byte [edi + 0x1db1], 1
push 0x1016c88b
vzeroupper
call fcn.100abcc0
add esp, 4
mov byte [edi + 0x1db1], 0
mov eax, dword [edi + 0x19b0]
mov byte [edi + 0x19bc], 0
mov dword [edi + 0x19b4], eax
vzeroupper
call fcn.100a0750
mov eax, dword [edi + 0x19e4]
test eax, eax
jns 0x100ab626
mov eax, dword [0x102a05a0]
test eax, eax
je 0x100ab5b9
inc dword [eax + 0x374]
push dword [0x102a05a8]
push 0
call dword [0x1029f8ac]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x19e8]
test eax, eax
je 0x100ab614
mov ecx, dword [edi + 0x19e0]
shl ecx, 2
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x19e8]
test eax, eax
je 0x100ab604
mov ecx, dword [0x102a05a0]
test ecx, ecx
je 0x100ab604
dec dword [ecx + 0x374]
push dword [0x102a05a8]
push eax
call dword [0x1029f8b0]
add esp, 8
mov dword [edi + 0x19e8], esi
mov dword [edi + 0x19e4], 0
xor eax, eax
mov dword [edi + 0x19e0], 0
mov ebx, dword [edi + 0x19c8]
cmp eax, ebx
jge 0x100ab6c3
lea eax, [ebx*4]
mov ecx, dword [0x102a05a0]
test ecx, ecx
je 0x100ab655
inc dword [ecx + 0x374]
push dword [0x102a05a8]
push eax
call dword [0x1029f8ac]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x19e8]
test eax, eax
je 0x100ab6af
mov ecx, dword [edi + 0x19e0]
shl ecx, 2
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x19e8]
test eax, eax
je 0x100ab69f
mov ecx, dword [0x102a05a0]
test ecx, ecx
je 0x100ab69f
dec dword [ecx + 0x374]
push dword [0x102a05a8]
push eax
call dword [0x1029f8b0]
add esp, 8
mov dword [edi + 0x19e8], esi
mov dword [edi + 0x19e4], ebx
mov eax, ebx
mov ebx, dword [edi + 0x19c8]
test ebx, ebx
je 0x100ab711
lea esi, [edi + 0x19e0]
xor ebp, ebp
jmp 0x100ab6f2
mov ecx, esi
call fcn.100abd10
mov ebx, dword [edi + 0x19c8]
inc ebp
cmp ebp, ebx
je 0x100ab709
mov eax, dword [edi + 0x19d0]
mov edx, dword [eax + ebp*4]
cmp byte [edx + 0x7a], 0
je 0x100ab6e0
test byte [edx + 0xb], 1
je 0x100ab6e0
jmp 0x100ab6ed
mov eax, dword [edi + 0x19e4]
jmp 0x100ab713
xor ebx, ebx
mov ecx, dword [edi + 0x19e0]
mov dword [edi + 0x19e0], ebx
mov dword [edi + 0x19c8], ecx
mov ecx, dword [edi + 0x19cc]
mov dword [edi + 0x19e4], ecx
mov dword [edi + 0x19cc], eax
mov eax, dword [edi + 0x19e8]
mov ecx, dword [edi + 0x19d0]
mov dword [edi + 0x19e8], ecx
mov dword [edi + 0x19d0], eax
mov eax, dword [edi + 0x1a04]
mov dword [edi + 0x370], eax
mov eax, dword [edi + 0x98]
mov byte [eax], 0
vxorps xmm0, xmm0, xmm0
vmovlps qword [edi + 0xf8], xmm0
cmp dword [edi + 0x1510], 0
jns 0x100ab7f2
mov eax, dword [0x102a05a0]
test eax, eax
je 0x100ab788
inc dword [eax + 0x374]
push dword [0x102a05a8]
push 0
call dword [0x1029f8ac]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x1514]
test eax, eax
je 0x100ab7e2
mov ecx, dword [edi + 0x150c]
add ecx, ecx
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x1514]
test eax, eax
je 0x100ab7d2
mov ecx, dword [0x102a05a0]
test ecx, ecx
je 0x100ab7d2
dec dword [ecx + 0x374]
push dword [0x102a05a8]
push eax
call dword [0x1029f8b0]
add esp, 8
mov dword [edi + 0x1514], esi
mov dword [edi + 0x1510], 0
mov dword [edi + 0x150c], 0
vxorps xmm0, xmm0, xmm0
vmovups ymmword [edi + 0x304], ymm0
vmovups ymmword [edi + 0x324], ymm0
vmovups ymmword [edi + 0x338], ymm0
mov ecx, dword [esp + 0x10]
xor ecx, esp
vzeroupper
call fcn.100e81f3
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [0x102a05a0]
cmp byte [ecx + 0x1ba5], 0
je 0x100ab448
cmp dword [ecx + 0x1bc4], 0
jne 0x100ab448
cmp dword [ecx + 0x1c14], 0
jne 0x100ab448
cmp dword [edx + 0x1bac], 0
jne 0x100ab448
cmp dword [edx + 0x1b80], 0
jne 0x100ab448
mov esi, dword [edx + 0x1c3c]
vmovss xmm2, dword [eax + 0x314]
vmovss xmm3, dword [eax + 0x31c]
mov ebx, dword [edx + 0x1bb4]
mov dword [esp], esi
mov edx, esi
and edx, 5
test ebx, ebx
je 0x100ab8b4
vmovss xmm1, dword [eax + 0x310]
vmovss xmm0, dword [eax + 0x318]
mov ebp, ebx
jmp 0x100ab97a
test edx, edx
je 0x100ab448
vmovss xmm0, dword [eax + 0x1c]
vmovss xmm1, dword [eax + 0x34]
vmovss xmm4, dword [0x10146fcc]
vfmadd213ss xmm4, xmm1, dword [eax + 0x24]
vcmpless xmm1, xmm4, xmm0
vblendvps xmm0, xmm4, xmm0, xmm1
vsubss xmm0, xmm0, dword [eax + 0x50]
mov esi, dword [esp]
mov ebp, esi
vxorps xmm1, xmm1, xmm1
and ebp, 4
je 0x100ab8f6
vsubss xmm1, xmm3, xmm2
vsubss xmm3, xmm3, xmm1
vsubss xmm2, xmm2, xmm1
shr ebp, 1
mov byte [ecx + 0x1ba5], 0
movzx edx, byte [ecx + 0x1b8d]
mov byte [ecx + 0x1b8c], dl
mov dword [ecx + 0x1bb4], 0
mov dword [ecx + 0x1bbc], ebp
mov dword [ecx + 0x1bac], 1
mov dword [ecx + 0x1ba8], esi
mov edx, dword [ecx + 0x1b38]
mov ecx, dword [ecx + 0x1b80]
shl ecx, 4
vmovss dword [edx + ecx + 0x310], xmm0
vmovss dword [edx + ecx + 0x314], xmm2
vmovss dword [edx + ecx + 0x318], xmm0
vmovss dword [edx + ecx + 0x31c], xmm3
mov ecx, dword [esp + 4]
mov ebx, dword [ecx + 0x1bb4]
mov edx, 1
vmovaps xmm1, xmm0
cmp ebx, 1
jne 0x100aba38
test edx, edx
je 0x100aba38
vmovss xmm0, dword [eax + 0x50]
vbroadcastss xmm4, dword [0x10144e60]
vxorps xmm0, xmm0, xmm4
mov ebx, dword [esp]
test bl, 4
je 0x100ab9a9
vsubss xmm4, xmm3, xmm2
vaddss xmm1, xmm3, xmm4
vaddss xmm2, xmm2, xmm4
mov ecx, 3
cmovne ebp, ecx
mov ecx, dword [0x102a05a0]
mov byte [ecx + 0x1ba5], 0
movzx edx, byte [ecx + 0x1b8d]
mov byte [ecx + 0x1b8c], dl
mov dword [ecx + 0x1bb4], 1
mov dword [ecx + 0x1bbc], ebp
mov dword [ecx + 0x1bac], 1
mov dword [ecx + 0x1ba8], ebx
mov edx, dword [ecx + 0x1b38]
mov ecx, dword [ecx + 0x1b80]
shl ecx, 4
vmovss dword [edx + ecx + 0x310], xmm0
vmovss dword [edx + ecx + 0x314], xmm2
vmovss dword [edx + ecx + 0x318], xmm0
vmovss dword [edx + ecx + 0x31c], xmm1
mov ecx, dword [esp + 4]
mov edx, ebx
mov ebx, dword [ecx + 0x1bb4]
vmovaps xmm1, xmm0
jmp 0x100aba3b
mov edx, dword [esp]
mov ecx, edx
and ecx, 0xa
cmp ebx, 2
jne 0x100abb0e
test ecx, ecx
je 0x100abb0e
vmovss xmm2, dword [eax + 0x20]
vmovss xmm3, dword [eax + 0x38]
vmovss xmm4, dword [0x10146fcc]
vfmadd213ss xmm4, xmm3, dword [eax + 0x28]
vcmpless xmm3, xmm4, xmm2
vblendvps xmm2, xmm4, xmm2, xmm3
vsubss xmm2, xmm2, dword [eax + 0x54]
xor edx, edx
vxorps xmm3, xmm3, xmm3
test byte [esp], 8
je 0x100aba89
vsubss xmm3, xmm0, xmm1
vsubss xmm0, xmm0, xmm3
vsubss xmm1, xmm1, xmm3
cmovne ebp, edx
mov edx, dword [0x102a05a0]
mov byte [edx + 0x1ba5], 0
movzx ebx, byte [edx + 0x1b8d]
mov byte [edx + 0x1b8c], bl
mov dword [edx + 0x1bb4], 2
mov dword [edx + 0x1bbc], ebp
mov dword [edx + 0x1bac], 1
mov esi, dword [esp]
mov dword [edx + 0x1ba8], esi
mov esi, dword [edx + 0x1b38]
mov edx, dword [edx + 0x1b80]
shl edx, 4
vmovss dword [esi + edx + 0x310], xmm1
vmovss dword [esi + edx + 0x314], xmm2
vmovss dword [esi + edx + 0x318], xmm0
vmovss dword [esi + edx + 0x31c], xmm2
mov edx, dword [esp + 4]
mov ebx, dword [edx + 0x1bb4]
cmp ebx, 3
jne 0x100ab448
test ecx, ecx
je 0x100ab448
vmovss xmm2, dword [eax + 0x54]
vbroadcastss xmm3, dword [0x10144e60]
vxorps xmm2, xmm2, xmm3
mov ebx, dword [esp]
test bl, 8
je 0x100abb3d
vsubss xmm3, xmm0, xmm1
vaddss xmm0, xmm0, xmm3
mov eax, 1
cmove eax, ebp
vaddss xmm1, xmm1, xmm3
mov ecx, dword [0x102a05a0]
mov byte [ecx + 0x1ba5], 0
movzx edx, byte [ecx + 0x1b8d]
mov byte [ecx + 0x1b8c], dl
mov dword [ecx + 0x1bb4], 3
mov dword [ecx + 0x1bbc], eax
mov dword [ecx + 0x1bac], 1
mov dword [ecx + 0x1ba8], ebx
mov eax, dword [ecx + 0x1b38]
mov ecx, dword [ecx + 0x1b80]
shl ecx, 4
vmovss dword [eax + ecx + 0x310], xmm1
vmovss dword [eax + ecx + 0x314], xmm2
vmovss dword [eax + ecx + 0x318], xmm0
vmovss dword [eax + ecx + 0x31c], xmm2
jmp 0x100ab448