Function at 0x421530
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push edi
push 0
push 0x46902c
push 0
push 0
push 0
push 0
mov edi, ecx
push 0
mov dword [ebp - 0x14], edi
call fcn.00435a20
push 0xc
mov dword [edi], vtable.MDLViewer.0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
call fcn.00425050
add esp, 4
test eax, eax
je 0x42157e
push edi
mov ecx, eax
call fcn.00437ab0
jmp 0x421580
xor eax, eax
push ebx
push esi
push 0xc
mov dword [edi + 0xc], eax
call fcn.00425050
add esp, 4
test eax, eax
je 0x4215a1
mov ecx, eax
call fcn.004388a0
mov esi, eax
mov dword [ebp - 4], eax
jmp 0x4215a6
xor esi, esi
mov dword [ebp - 4], esi
push 0xc
call fcn.00425050
add esp, 4
test eax, eax
je 0x4215bd
mov ecx, eax
call fcn.004388a0
jmp 0x4215bf
xor eax, eax
push 0xc
mov dword [edi + 0x18], eax
call fcn.00425050
add esp, 4
test eax, eax
je 0x4215d9
mov ecx, eax
call fcn.004388a0
jmp 0x4215db
xor eax, eax
push 0xc
mov dword [edi + 0x1c], eax
call fcn.00425050
add esp, 4
test eax, eax
je 0x4215fa
mov ecx, eax
call fcn.004388a0
mov ebx, eax
mov dword [ebp - 0x10], eax
jmp 0x4215ff
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov ecx, dword [edi + 0xc]
push esi
push str.File
call fcn.00438930
push dword [edi + 0x18]
mov ecx, dword [edi + 0xc]
push str.Options
call fcn.00438930
push dword [edi + 0x1c]
mov ecx, dword [edi + 0xc]
push str.View
call fcn.00438930
mov ecx, dword [edi + 0xc]
push ebx
push str.Help
call fcn.00438930
push 0xc
call fcn.00425050
add esp, 4
test eax, eax
je 0x421657
mov ecx, eax
call fcn.004388a0
mov ebx, eax
mov dword [ebp - 0xc], eax
jmp 0x42165c
xor ebx, ebx
mov dword [ebp - 0xc], ebx
push 0x3f0
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f1
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f2
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f3
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f4
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f5
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f6
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x3f7
push str._empty_
mov ecx, ebx
call fcn.00438910
cmp byte [0x471d10], 0
mov ecx, esi
je 0x42170c
push 0x3e9
push str.Load_Model...
call fcn.00438910
push 0x3fc
push str._Steam__Load_Model...
mov ecx, esi
jmp 0x421716
push 0x3fc
push str.Load_Model...
call fcn.00438910
push 0x3f9
push str.Refresh__F5_
mov ecx, esi
call fcn.00438910
mov ecx, esi
call fcn.00438960
cmp byte [0x471d10], 0
mov ecx, esi
je 0x42175b
push 0x3fa
push str.Load_Weapon...
call fcn.00438910
push 0x3fd
push str._Steam__Load_Weapon...
mov ecx, esi
jmp 0x421765
push 0x3fd
push str.Load_Weapon...
call fcn.00438910
push 0xc
call fcn.00425050
add esp, 4
test eax, eax
je 0x421783
mov ecx, eax
call fcn.004388a0
mov ebx, eax
jmp 0x421785
xor ebx, ebx
push 0x596
push str.Unload_All_Merged_Models__Ctrl_U_
mov ecx, ebx
call fcn.00438910
push 0x586
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x587
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x588
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x589
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x58a
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x58b
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x58c
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x58d
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x58e
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x58f
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x590
push str._empty_
mov ecx, ebx
call fcn.00438910
push 0x591
push str._empty_
mov ecx, ebx
call fcn.00438910
mov esi, 0x586
push 0
push esi
mov ecx, ebx
call fcn.004389b0
inc esi
cmp esi, 0x591
jle 0x421867
push ebx
mov ebx, dword [ebp - 4]
mov ecx, ebx
push str.Unload_Weapon
call fcn.00438930
mov ecx, ebx
call fcn.00438960
push 0x3ea
push str.Load_Background_Texture...
mov ecx, ebx
call fcn.00438910
push 0x3eb
push str.Load_Ground_Texture...
mov ecx, ebx
call fcn.00438910
mov ecx, ebx
call fcn.00438960
push 0x3ec
push str.Unload_Ground_Texture
mov ecx, ebx
call fcn.00438910
mov ecx, ebx
call fcn.00438960
push dword [ebp - 0xc]
mov ecx, ebx
push str.Recent_Models
call fcn.00438930
mov ecx, ebx
call fcn.00438960
push 0x3f8
push str.Exit
mov ecx, ebx
call fcn.00438910
push 0
push 0x3ea
mov ecx, ebx
call fcn.004389b0
push 0
push 0x3eb
mov ecx, ebx
call fcn.004389b0
push 0
push 0x3ec
mov ecx, ebx
call fcn.004389b0
mov ecx, dword [edi + 0x18]
push 0x44d
push str.Background_Color...
call fcn.00438910
mov ecx, dword [edi + 0x18]
push 0x44e
push str.Ground_Color...
call fcn.00438910
mov ecx, dword [edi + 0x18]
push 0x44f
push str.Light_Color...
call fcn.00438910
mov ecx, dword [edi + 0x18]
push 0x450
push str.Ambient_Color...
call fcn.00438910
mov ecx, dword [edi + 0x18]
call fcn.00438960
mov ecx, dword [edi + 0x18]
push 0x451
push str.Center_View
call fcn.00438910
mov ecx, dword [edi + 0x18]
push 0x455
push str.Viewmodel_Mode
call fcn.00438910
mov ecx, dword [edi + 0x18]
call fcn.00438960
mov ecx, dword [edi + 0x18]
push 0x453
push str.Make_Screenshot...
call fcn.00438910
mov ecx, dword [edi + 0x1c]
push 0x4b1
push str.File_Associations...
call fcn.00438910
mov ecx, dword [edi + 0x1c]
push 0
push 0x4b1
call fcn.004389b0
mov ecx, dword [edi + 0x1c]
call fcn.00438960
mov ecx, dword [edi + 0x1c]
push 0x4b2
push str.Show_Activities
call fcn.00438910
mov ecx, dword [edi + 0x1c]
push 0x4b3
push str.Show_hidden
call fcn.00438910
mov ebx, dword [ebp - 0x10]
mov ecx, ebx
push 0x515
push str.Goto_Homepage...
call fcn.00438910
mov ecx, ebx
call fcn.00438960
push 0x516
push str.About...
mov ecx, ebx
call fcn.00438910
push 0x20
call fcn.00425050
add esp, 4
test eax, eax
je 0x421a51
push 0
push 0x457757
push 0x64
push 0x64
push 0
push 0
push edi
mov ecx, eax
call fcn.0041e8b0
jmp 0x421a53
xor eax, eax
push 0x3cc
mov dword [edi + 0x10], eax
call fcn.00425050
add esp, 4
test eax, eax
je 0x421a73
push edi
mov ecx, eax
call fcn.00412130
mov ecx, eax
jmp 0x421a75
xor ecx, ecx
mov eax, dword [edi + 0x10]
mov dword [edi + 0x14], ecx
mov dword [ecx + 0x180], eax
mov eax, dword [edi + 0x10]
push 0x1168
mov dword [0x471ba4], eax
call fcn.00425050
add esp, 4
test eax, eax
je 0x421aa8
mov ecx, eax
call fcn.0041e110
mov dword [0x471ba0], eax
jmp 0x421ab2
mov dword [0x471ba0], 0
mov ecx, edi
call fcn.00424e60
mov ecx, edi
call fcn.00424df0
call fcn.0042f8f0
mov esi, dword [0x63ac10]
mov eax, 0x14
mov edx, dword [0x63ac14]
cmp esi, 0xffffc000
mov ecx, dword [0x63ac18]
mov ebx, 0x2bc
cmovl esi, eax
cmp edx, 0xffffc000
mov dword [0x63ac10], esi
cmovl edx, eax
xor eax, eax
test edx, edx
cmovs edx, eax
mov eax, 0x280
cmp ecx, eax
mov dword [0x63ac14], edx
cmovl ecx, eax
mov eax, dword [0x63ac1c]
cmp eax, ebx
mov dword [0x63ac18], ecx
cmovl eax, ebx
push eax
push ecx
push edx
push esi
mov ecx, edi
mov dword [0x63ac1c], eax
call fcn.004357d0
push 1
mov ecx, edi
call fcn.00435960
push 0xc8
mov ecx, edi
call fcn.00435bd0
xor edx, edx
xor edi, edi
xor esi, esi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x28], edi
xor ebx, ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edx
nop
mov al, byte [ebx + 0x469054]
mov ecx, esi
mov byte [ebp - 0xc], al
movzx eax, word [ebx + 0x469050]
mov word [ebp - 0xa], ax
mov ax, word [ebx + 0x469052]
mov word [ebp - 2], ax
lea eax, [esi + 1]
mov dword [ebp - 0x10], ecx
cmp eax, edx
jle 0x421ba0
sub esi, edx
lea ecx, [ebp - 0x28]
inc esi
push esi
call fcn.00436450
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
inc esi
mov dword [ebp - 0x18], edi
mov edx, esi
mov dword [ebp - 0x1c], esi
sub edx, ecx
dec edx
test edx, edx
jle 0x421bcc
lea eax, [ecx + ecx*2]
lea ecx, [edi + eax*2]
lea eax, [edx + edx*2]
add eax, eax
push eax
push ecx
lea eax, [ecx + 6]
push eax
call fcn.00440a20
mov ecx, dword [ebp - 0x10]
add esp, 0xc
lea eax, [ecx + ecx*2]
lea ecx, [edi + eax*2]
test ecx, ecx
je 0x421be3
mov eax, dword [ebp - 0xc]
mov dword [ecx], eax
mov ax, word [ebp - 2]
mov word [ecx + 4], ax
mov edx, dword [ebp - 0x24]
add ebx, 6
cmp ebx, 0x90
jb 0x421b60
push edi
push esi
mov dword [ebp - 0x10], edi
call fcn.004372a0
mov ecx, dword [0x471ccc]
add esp, 8
mov edi, dword [ebp - 0x14]
pop esi
pop ebx
test ecx, ecx
je 0x421c1a
mov eax, dword [0x471cd0]
test eax, eax
jne 0x421c8b
mov ecx, 0x471cb0
call fcn.00422f40
test eax, eax
je 0x421c76
cmp dword [0x471ccc], 0
jne 0x421c76
push 0
push 4
push 0x471cb0
push 0x423440
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x471ccc], eax
test eax, eax
je 0x421c76
push eax
mov dword [0x471cd0], 1
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, dword [0x471ccc]
test ecx, ecx
je 0x421c76
mov eax, dword [0x471cd0]
test eax, eax
jne 0x421c8b
mov ecx, 0x471cb0
call fcn.00423990
mov eax, dword [0x471cd0]
mov ecx, dword [0x471ccc]
test ecx, ecx
je 0x421c93
test eax, eax
jne 0x421cdd
mov ecx, dword [edi + 0x18]
call fcn.00438960
mov ecx, dword [edi + 0x18]
push 0x457
push str.Link_HLMV
call fcn.00438910
mov ecx, dword [edi + 0x18]
push 0x458
push str.Unlink_HLMV
call fcn.00438910
mov ecx, dword [edi + 0x18]
push 1
push 0x458
call fcn.00438980
mov ecx, dword [edi + 0x18]
push 0
push 0x458
call fcn.004389b0
cmp dword [ebp - 0x20], 0
jl 0x421d0a
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x421d0a
mov eax, dword [sym.imp.tier0.dll_g_pMemAlloc]
push edx
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0x14]
xor edx, edx
test edx, edx
je 0x421d0a
mov eax, dword [sym.imp.tier0.dll_g_pMemAlloc]
push edx
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, edi
pop edi
mov esp, ebp
pop ebp
ret