Function at 0x10004050
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x818
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
cmp eax, 0x110
je 0x10004098
cmp eax, 0x111
jne 0x10004088
cmp dword [ebp + 0x10], 1
je 0x10004300
cmp dword [ebp + 0x10], 2
je 0x100042c0
lea esi, [esi]
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], 8
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [sym.imp.user32.dll_SetWindowLongW]
mov eax, dword [ebp + 0x14]
sub esp, 0xc
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x100040e4
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc
mov dword [esp], esi
call dword [sym.imp.user32.dll_SendMessageW]
mov eax, dword [ebp + 0x14]
sub esp, 0x10
mov eax, dword [eax]
mov ebx, dword [eax + 0x10]
mov edi, dword [sym.imp.user32.dll_GetDlgItem]
test ebx, ebx
je 0x10004126
mov dword [esp + 4], 0xa28
mov dword [esp], esi
call edi
sub esp, 8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
mov eax, dword [ebp + 0x14]
sub esp, 0x10
mov eax, dword [eax]
test byte [eax + 8], 1
je 0x100043d0
mov ebx, dword [eax + 0x14]
mov dword [esp + 4], 0xa29
mov dword [esp], esi
call edi
xor edi, edi
mov dword [ebp - 0x814], eax
mov eax, dword [ebx + 8]
sub esp, 8
test eax, eax
je 0x10004187
lea esi, [esi]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xc], sym._enum_store_callback_20
mov dword [esp + 8], esi
lea eax, [eax + edi*8]
add edi, 1
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.crypt32.dll_CertEnumSystemStore]
sub esp, 0x10
cmp edi, dword [ebx + 8]
jb 0x10004158
mov ecx, dword [ebx]
xor esi, esi
test ecx, ecx
jne 0x100041a3
jmp 0x10004088
add esi, 1
cmp esi, dword [ebx]
jae 0x10004088
lea eax, [ebp - 0x80c]
mov dword [esp + 8], 0
lea edi, [esi*4]
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x1000
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*4]
mov dword [esp], eax
call dword [sym.imp.crypt32.dll_CertGetStoreProperty]
sub esp, 0x10
test eax, eax
je 0x10004198
mov eax, dword [ebp - 0x80c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, eax
test eax, eax
je 0x10004198
lea eax, [ebp - 0x80c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x1000
mov eax, dword [ebx + 4]
mov dword [ebp - 0x810], edx
mov eax, dword [eax + edi]
mov dword [esp], eax
call dword [sym.imp.crypt32.dll_CertGetStoreProperty]
mov edx, dword [ebp - 0x810]
sub esp, 0x10
test eax, eax
jne 0x10004238
mov dword [esp], edx
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x10004198
mov dword [esp], 8
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, dword [ebp - 0x810]
test eax, eax
je 0x10004227
mov dword [eax], 0
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + edi]
mov dword [ebp - 0x3e0], eax
mov dword [ebp - 0x3f4], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x40c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x814]
mov dword [ebp - 0x40c], 0
mov dword [ebp - 0x408], 0xffff0002
mov dword [ebp - 0x404], 5
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
mov edx, dword [ebp - 0x810]
sub esp, 0x10
jmp 0x10004227
mov dword [esp], esi
mov dword [esp + 4], 0xa29
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
call sym._free_store_info
mov dword [esp], esi
mov dword [esp + 4], 2
call dword [sym.imp.user32.dll_EndDialog]
mov eax, 1
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp + 4], 0xa29
mov dword [esp], esi
call dword [sym.imp.user32.dll_GetDlgItem]
mov ecx, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 8
mov ebx, eax
mov dword [ebp - 0x814], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 9
mov dword [esp + 4], 0x110a
mov dword [esp], eax
call ecx
sub esp, 0x10
mov dword [ebp - 0x810], eax
mov dword [esp + 4], 8
mov dword [esp], esi
call dword [sym.imp.user32.dll_GetWindowLongW]
mov edx, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x814]
sub esp, 8
mov edi, eax
test edx, edx
jne 0x10004400
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
mov eax, dword [0x10022004]
test ebx, ebx
je 0x100044f0
lea edi, [ebp - 0x40c]
mov dword [esp + 0xc], 0x200
mov dword [esp + 8], edi
mov dword [esp + 4], 0x412
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
sub esp, 0x10
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.user32.dll_MessageBoxW]
mov eax, 1
sub esp, 0x10
jmp 0x1000408a
mov dword [esp + 4], 0xa2a
mov dword [esp], esi
call edi
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [ebp + 0x14]
sub esp, 8
mov eax, dword [eax]
jmp 0x10004130
xor edx, edx
xor eax, eax
mov dword [ebp + eax - 0x804], edx
add eax, 4
cmp eax, 0x20
jb 0x10004404
mov eax, dword [ebp - 0x810]
lea edx, [ebp - 0x40c]
mov dword [esp], ebx
mov dword [ebp - 0x7fc], edx
mov dword [ebp - 0x808], eax
lea eax, [ebp - 0x80c]
mov dword [ebp - 0x80c], 0x15
mov dword [ebp - 0x7f8], 0x200
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x113e
call ecx
mov eax, dword [ebp - 0x7e8]
lea edx, [ebp - 0x40c]
sub esp, 0x10
test eax, eax
je 0x100044d0
mov edx, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
jne 0x100044d0
mov ecx, dword [edi]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x100044a6
mov ecx, dword [ecx + 0x1c]
mov dword [ebp - 0x810], edx
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
call eax
mov edx, dword [ebp - 0x810]
sub esp, 0xc
test eax, eax
je 0x10004520
mov dword [edi + 4], edx
mov eax, ebx
call sym._free_store_info
mov dword [esp + 4], 1
mov dword [esp], esi
call dword [sym.imp.user32.dll_EndDialog]
mov eax, 1
sub esp, 8
jmp 0x1000408a
mov dword [esp + 4], edx
mov dword [esp], 0
call dword [sym.imp.crypt32.dll_CertOpenSystemStoreW]
sub esp, 8
mov edx, eax
jmp 0x1000447a
lea ebx, [ebp - 0x80c]
mov dword [esp + 0xc], 0x200
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x411
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
mov eax, dword [0x10022004]
sub esp, 0x10
jmp 0x10004384
mov dword [esp + 4], 0
mov dword [esp], edx
call dword [sym.imp.crypt32.dll_CertCloseStore]
mov eax, 1
sub esp, 8
jmp 0x1000408a