Function at 0x42d9b0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x228
mov eax, dword [0x445030]
xor eax, esp
mov dword [esp + 0x224], eax
mov eax, dword [0x448804]
mov edx, dword [eax + 0xc]
push ebx
push ebp
mov ebp, dword [esp + 0x234]
push esi
push edi
mov ecx, 0x448804
mov dword [esp + 0x24], ebp
call edx
add eax, 0x10
add ebp, 0x260
lea esi, [esp + 0x14]
mov ebx, ebp
mov dword [esp + 0x14], eax
call fcn.0040da20
mov esi, dword [esp + 0x14]
cmp dword [esi - 4], 1
jle 0x42da16
mov eax, dword [esi - 0xc]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.004020a0
mov esi, dword [esp + 0x14]
mov edx, dword [ebp]
push esi
push 0xffffffffffffffff
push 0x158
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
mov eax, dword [esi - 8]
push eax
push esi
mov dword [esp + 0x28], edi
call fcn.0041b493
add esp, 8
test eax, eax
jl 0x42dda6
cmp eax, dword [esi - 8]
jg 0x42dda6
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
test edi, edi
jl 0x42dd6d
mov edx, dword [0x448804]
mov eax, dword [edx + 0xc]
mov ecx, 0x448804
call eax
mov edx, dword [0x448804]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x448804
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
lea eax, [esp + 0x14]
lea edi, [esp + 0x1c]
call fcn.00401790
mov esi, dword [esp + 0x1c]
cmp dword [esi - 0xc], 8
jl 0x42dabd
lea ecx, [esi + 0x10]
push 0x43cdd8
push ecx
call fcn.0041b856
add esp, 8
test eax, eax
je 0x42dabd
sub eax, esi
sar eax, 1
jns 0x42daee
mov edi, 0x43cddc
lea ebx, [esp + 0x14]
lea esi, [esp + 0x18]
call fcn.004013b0
lea edi, [esp + 0x1c]
call fcn.00401790
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x42db49
inc eax
lea ecx, [esp + 0x28]
lea edx, [esp + 0x1c]
call fcn.00401350
mov edi, 0x43cdf8
mov ebx, eax
lea esi, [esp + 0x18]
call fcn.004013b0
lea edi, [esp + 0x1c]
call fcn.00401790
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42db35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42db55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x1c]
lea edi, [esp + 0x10]
call fcn.00401790
push 0x43ce10
push 0x43ce14
mov ecx, edi
push ecx
call fcn.00402200
push 0x43ce18
push 0x43ce1c
mov edx, edi
push edx
call fcn.00402200
push 0x43ce20
push 0x43ce24
mov eax, edi
push eax
call fcn.00402200
push 0x43ce28
push 0x43ce2c
mov ecx, edi
push ecx
call fcn.00402200
push 0x43ce30
push 0x43ce34
mov edx, edi
push edx
call fcn.00402200
push 0x43ce38
push 0x43ce3c
mov eax, edi
push eax
call fcn.00402200
push 0x43ce40
push 0x43ce44
mov ecx, edi
push ecx
call fcn.00402200
push 0x43ce48
push 0x43ce4c
mov edx, edi
push edx
call fcn.00402200
push 0x43ce50
push 0x43ce54
mov eax, edi
push eax
call fcn.00402200
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x36]
push edx
mov word [esp + 0x38], cx
call fcn.0041c990
add esp, 0xc
lea eax, [esp + 0x2c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edx, dword [0x448804]
mov eax, dword [edx + 0xc]
mov ecx, 0x448804
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x2c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42dc50
sub eax, edx
sar eax, 1
lea ecx, [esp + 0x2c]
mov ebx, eax
push ecx
lea eax, [esp + 0x1c]
call fcn.004018e0
mov edi, dword [esp + 0x10]
mov edx, dword [edi - 0xc]
push edx
push edi
lea eax, [esp + 0x20]
push eax
call fcn.00402520
mov ecx, dword [esp + 0x18]
push 0x10
push 0
push 0
push 1
push ecx
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
mov esi, eax
test esi, esi
je 0x42dd0d
mov edx, dword [esp + 0x20]
mov eax, dword [ebp]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push edx
push 0x144
push eax
call edi
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x2e8]
push esi
push 0xffffffffffffffff
push ecx
call dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
mov edx, dword [ebx + 0x2e8]
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_GetImageCount]
mov ecx, dword [esp + 0x14]
lea edx, [eax - 1]
push edx
push ebp
call fcn.00407ff0
mov eax, dword [ebp]
push 0
push 0
push 0x146
push eax
call edi
mov ecx, dword [ebp]
push 0
dec eax
push eax
push 0x14e
push ecx
call edi
push esi
call dword [sym.imp.USER32.dll_DestroyIcon]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dd2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dd49
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dd69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dd89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x234]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0041b3f1
add esp, 0x228
ret 4
push 0x80070057
call fcn.004021d0
int3