Function at 0x10148920
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1027b63f
mov eax, dword fs:[0]
push eax
sub esp, 0x2e0
push ebx
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x2f0]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2f8], 3
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov edx, dword [eax + 0x6c]
lea ecx, [esp + 0x18]
push ecx
push edi
call edx
cmp eax, ebx
jge 0x10148988
push ebx
push 0x178
push 0x102d589c
push eax
call fcn.100048f0
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ebx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
cmp eax, ebx
jge 0x101489ae
push ebx
push ebx
push 0x102b274a
push eax
call fcn.100048f0
cmp dword [esp + 0x14], ebx
je 0x101495a7
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0xf4]
push edx
call fcn.100bef40
mov byte [esp + 0x2f8], 4
jmp 0x101489d6
mov edi, dword [ebp + 8]
lea eax, [esp + 0xfc]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x24], ebx
cmp eax, ebx
je 0x10148a0e
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x100]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
jl 0x101489a1
cmp dword [esp + 0x24], ebx
seta al
test al, al
je 0x10149592
lea ecx, [esp + 0x28]
push ecx
lea esi, [esp + 0xf8]
call fcn.1004c580
mov byte [esp + 0x2f8], 5
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x2f8], 7
cmp eax, ebx
je 0x10148a5b
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [esp + 0x1c]
push ecx
push 0x102b8ab4
push eax
call edx
mov byte [esp + 0x2f8], 8
cmp dword [esp + 0x1c], ebx
setne al
test al, al
je 0x101494c1
lea ecx, [esp + 0x2c]
call fcn.10002dd0
mov byte [esp + 0x2f8], 9
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], ebx
call fcn.100041b0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jl 0x101489a1
mov ecx, 8
mov word [esp + 0x34], cx
lea eax, [esp + 0x3c]
mov dword [esp + 0x44], 2
mov dword [esp + 0x3c], ebx
mov edx, dword [esi]
mov ecx, dword [edx + 0x1c]
push eax
push esi
call ecx
cmp eax, ebx
jl 0x101494d6
or esi, 0xffffffff
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], esi
call fcn.10003840
cmp dword [esp + 0x44], 3
jne 0x10148b04
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x48], 1
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jl 0x101489a1
cmp dword [esp + 0x44], ebx
jne 0x10148b12
mov dword [esp + 0x44], 1
mov eax, dword [esp + 0x2c]
push 0x102bcd0c
push eax
call fcn.10231204
add esp, 8
cmp eax, ebx
je 0x10148b30
sub eax, dword [esp + 0x2c]
sar eax, 1
jns 0x10148b49
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
cmp eax, ebx
jl 0x101494e7
cmp dword [esp + 0x14], esi
je 0x10148d97
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x184]
call fcn.100555b0
mov byte [esp + 0x2f8], 0xa
mov eax, dword [esp + 0x14]
shl eax, 0xa
mov edx, 3
mov word [esp + 0x7c], dx
mov dword [esp + 0x84], eax
mov byte [esp + 0x2f8], 0xb
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x184]
call fcn.101daa00
mov byte [esp + 0x2f8], 0xc
lea ecx, [esp + 0x1bc]
push ecx
mov ecx, eax
call fcn.10055810
mov byte [esp + 0x2f8], 0xd
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
mov esi, dword [edi + 0x90]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x88]
lea eax, [esp + 0x1bc]
mov dword [esp + 0x64], ecx
push eax
lea ecx, [esp + 0x2b0]
mov dword [esp + 0x6c], edx
call fcn.10055870
mov edi, eax
mov byte [esp + 0x2f8], 0xe
mov ecx, edi
call fcn.10003840
cmp dword [edi + 0x18], 3
jne 0x10148c32
lea ecx, [edi + 8]
push ecx
mov dword [edi + 0x18], 1
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jl 0x101489a1
cmp dword [edi + 0x18], ebx
jne 0x10148c3e
mov dword [edi + 0x18], 1
call fcn.1008ee70
push eax
lea ecx, [esp + 0x270]
call fcn.100023b0
mov byte [esp + 0x2f8], 0xf
cmp dword [eax + 0x18], ebx
je 0x10148c86
mov ecx, eax
call fcn.100039a0
movzx ecx, word [eax]
cmp cx, bx
je 0x10148c86
cmp cx, 1
je 0x10148c86
cmp cx, 8
sete cl
test cl, cl
je 0x101494f8
mov ecx, dword [eax + 8]
jmp 0x10148c88
xor ecx, ecx
mov edi, dword [esp + 0x5c]
mov edx, dword [esi]
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov edi, dword [esp + 0x70]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x74]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x78]
push ecx
mov dword [eax + 0xc], edi
mov eax, dword [edx + 0x20]
push esi
call eax
cmp eax, ebx
jl 0x1014950d
mov byte [esp + 0x2f8], 0x10
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0x274]
push ecx
call esi
mov byte [esp + 0x2f8], 0xe
lea ecx, [esp + 0x26c]
call fcn.10004720
mov byte [esp + 0x2f8], 0x12
lea edx, [esp + 0x2b4]
push edx
call esi
mov byte [esp + 0x2f8], 0xd
lea ecx, [esp + 0x2ac]
call fcn.10004720
mov byte [esp + 0x2f8], 0x14
lea eax, [esp + 0x1c4]
push eax
call esi
mov byte [esp + 0x2f8], 0xc
lea ecx, [esp + 0x1bc]
call fcn.10004720
mov byte [esp + 0x2f8], 0x16
lea ecx, [esp + 0x268]
call fcn.10004720
mov byte [esp + 0x2f8], 0xb
mov edi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea ecx, [esp + 0x250]
push ecx
call edi
mov byte [esp + 0x2f8], 0xa
lea edx, [esp + 0x7c]
push edx
call esi
mov byte [esp + 0x2f8], 0x19
lea ecx, [esp + 0x198]
call fcn.10004720
mov byte [esp + 0x2f8], 9
lea eax, [esp + 0x180]
push eax
call edi
jmp 0x10149451
lea ecx, [esp + 0xc4]
call fcn.10002dd0
mov byte [esp + 0x2f8], 0x1c
lea ecx, [esp + 0xc4]
mov dword [esp + 0xdc], ebx
call fcn.100041b0
lea ecx, [esp + 0xcc]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jl 0x101489a1
mov eax, dword [edi]
lea ecx, [esp + 0xd4]
mov edx, 8
push ecx
mov word [esp + 0xd0], dx
mov edx, dword [eax + 0x5c]
push edi
mov dword [esp + 0xe4], 2
mov dword [esp + 0xdc], ebx
call edx
cmp eax, ebx
jl 0x1014951e
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x130]
call fcn.100555b0
mov byte [esp + 0x2f8], 0x1d
lea ecx, [esp + 0xa8]
call fcn.10056c80
mov byte [esp + 0x2f8], 0x1e
lea ecx, [esp + 0xc0]
push 0x103b7524
mov dword [esp + 0x24], ecx
call fcn.10003eb0
mov byte [esp + 0x2f8], 0x21
lea ecx, [esp + 0x12c]
call fcn.101dc650
shr eax, 4
not al
test al, 1
je 0x10148eaf
lea edx, [esp + 0x2d0]
push edx
lea ecx, [esp + 0x130]
call fcn.101daa80
mov byte [esp + 0x2f8], 0x22
add eax, 0x18
push eax
lea ecx, [esp + 0xc4]
call fcn.100036b0
mov byte [esp + 0x2f8], 0x21
lea ecx, [esp + 0x2d0]
call fcn.10056b10
jmp 0x10148ec3
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0xc4]
call fcn.100036b0
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0xac]
call fcn.10055790
mov byte [esp + 0x2f8], 0x23
add eax, 0x18
push eax
lea ecx, [esp + 0xc4]
call fcn.100036b0
mov byte [esp + 0x2f8], 0x24
lea ecx, [esp + 0x1f8]
call fcn.10004720
mov byte [esp + 0x2f8], 0x21
mov esi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea edx, [esp + 0x1e0]
push edx
call esi
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x238]
call fcn.100555b0
mov byte [esp + 0x2f8], 0x27
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x14c]
push edx
push eax
call fcn.10055620
mov byte [esp + 0x2f8], 0x2a
lea ecx, [esp + 0x24c]
call fcn.10004720
mov byte [esp + 0x2f8], 0x29
lea eax, [esp + 0x234]
push eax
call esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], 0xa
mov byte [esp + 0x2f8], 0x2d
lea ecx, [esp + 0x1fc]
push ecx
lea ecx, [esp + 0x14c]
call fcn.101daa00
mov edi, eax
mov byte [esp + 0x2f8], 0x2e
lea edx, [esp + 0x218]
push edx
lea ecx, [esp + 0x14c]
call fcn.101daa80
mov byte [esp + 0x2f8], 0x2f
mov edx, dword [esp + 0x90]
push ebx
lea ecx, [esp + 0x94]
mov dword [esp + 0xf4], ecx
push 0x10
lea ecx, [esp + 0xec]
push ecx
push edi
mov ecx, eax
mov dword [esp + 0xf4], vtable.CAtlListBuilder_class_CFilePath__class_ATL::CElementTraits_class_CFilePath___class_ATL::CAtlList_class_CFilePath__class_ATL::CElementTraits_class_CFilePath___.0
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], edx
call fcn.101dcdb0
mov byte [esp + 0x2f8], 0x30
lea ecx, [esp + 0x230]
call fcn.10004720
mov byte [esp + 0x2f8], 0x2e
lea edx, [esp + 0x218]
push edx
call esi
mov byte [esp + 0x2f8], 0x33
lea ecx, [esp + 0x214]
call fcn.10004720
mov byte [esp + 0x2f8], 0x2d
lea eax, [esp + 0x1fc]
push eax
call esi
mov ebx, dword [esp + 0x90]
test ebx, ebx
je 0x10149399
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x1014952f
mov eax, ebx
mov ebx, dword [ebx]
lea esi, [eax + 8]
mov ecx, esi
call fcn.101dc770
mov ecx, 0x15
mov word [esp + 0x4c], cx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov byte [esp + 0x2f8], 0x36
lea edx, [esp + 0x164]
push edx
mov ecx, esi
call fcn.101daa00
mov byte [esp + 0x2f8], 0x37
lea ecx, [esp + 0x19c]
push ecx
mov ecx, eax
call fcn.10055810
mov byte [esp + 0x2f8], 0x38
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x19c]
mov dword [esp + 0x20], ecx
push edx
lea ecx, [esp + 0x290]
call fcn.10055870
mov esi, eax
mov byte [esp + 0x2f8], 0x39
mov ecx, esi
call fcn.10003840
cmp dword [esi + 0x18], 3
jne 0x10149152
lea eax, [esi + 8]
push eax
mov dword [esi + 0x18], 1
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jl 0x10149545
cmp dword [esi + 0x18], 0
jne 0x1014915f
mov dword [esi + 0x18], 1
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, edi
or eax, ecx
jge 0x1014917d
push edi
mov ecx, esi
call fcn.100042e0
mov eax, dword [esi]
lea ecx, [edi + 1]
push ecx
push eax
call fcn.102317bd
add esp, 8
test edi, edi
jl 0x1014957c
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x1014957c
mov dword [eax - 0xc], edi
mov edx, dword [esi]
xor eax, eax
mov word [edx + edi*2], ax
mov esi, dword [esi]
sub esi, 0x10
push esi
call fcn.10004780
add eax, 0x10
add esp, 4
mov dword [esp + 0x10c], eax
mov byte [esp + 0x2f8], 0x3b
lea ecx, [esp + 0x114]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [esp + 0x2f8], 0x3c
mov dword [esp + 0x124], 1
mov byte [esp + 0x2f8], 0x3d
cmp dword [esp + 0x124], 0
je 0x1014922b
lea ecx, [esp + 0x10c]
call fcn.100039a0
movzx ecx, word [eax]
test cx, cx
je 0x1014922b
cmp cx, 1
je 0x1014922b
cmp cx, 8
sete cl
test cl, cl
je 0x10149554
mov ecx, dword [eax + 8]
jmp 0x1014922d
xor ecx, ecx
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x20]
mov esi, dword [edx]
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov edi, dword [esp + 0x80]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x84]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x88]
push ecx
push edx
mov edx, dword [esi + 0x20]
mov dword [eax + 0xc], edi
call edx
test eax, eax
jl 0x1014956a
mov byte [esp + 0x2f8], 0x3e
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x114]
push eax
call esi
mov byte [esp + 0x2f8], 0x39
mov eax, dword [esp + 0x10c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x101492ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2f8], 0x41
lea ecx, [esp + 0x294]
push ecx
call esi
mov byte [esp + 0x2f8], 0x38
mov eax, dword [esp + 0x28c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x101492eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2f8], 0x44
lea ecx, [esp + 0x1a4]
push ecx
call esi
mov byte [esp + 0x2f8], 0x37
mov eax, dword [esp + 0x19c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10149328
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2f8], 0x47
lea ecx, [esp + 0x17c]
mov dword [esp + 0x20], ecx
mov byte [esp + 0x2f8], 0x47
mov eax, dword [esp + 0x17c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10149366
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2f8], 0x36
lea ecx, [esp + 0x164]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x2f8], 0x2d
lea edx, [esp + 0x4c]
push edx
call esi
test ebx, ebx
jne 0x1014907c
mov esi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x2f8], 0x29
lea ecx, [esp + 0x90]
call fcn.10091d30
mov byte [esp + 0x2f8], 0x4b
lea ecx, [esp + 0x160]
call fcn.10004720
mov byte [esp + 0x2f8], 0x21
lea eax, [esp + 0x148]
push eax
call esi
mov byte [esp + 0x2f8], 0x4e
lea ecx, [esp + 0xc0]
call fcn.10004720
mov byte [esp + 0x2f8], 0x1d
lea ecx, [esp + 0xa8]
push ecx
call esi
mov byte [esp + 0x2f8], 0x51
lea ecx, [esp + 0x144]
call fcn.10004720
mov byte [esp + 0x2f8], 0x1c
lea edx, [esp + 0x12c]
push edx
call esi
mov byte [esp + 0x2f8], 0x54
lea eax, [esp + 0xcc]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [esp + 0x2f8], 9
lea ecx, [esp + 0xc4]
call fcn.10004720
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor ebx, ebx
mov byte [esp + 0x2f8], 0x56
lea ecx, [esp + 0x34]
push ecx
call esi
mov byte [esp + 0x2f8], 8
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10149488
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2f8], 5
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x101494a0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x2f8], 4
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x101489d3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x101489d3
push ebx
push 0x183
push 0x102d589c
push 0xe0e00000
call fcn.100048f0
push ebx
push 0x185
push 0x102d589c
push eax
call fcn.100048f0
push ebx
push 0x18a
push 0x102d589c
push eax
call fcn.100048f0
push ebx
push 0xb7
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
push ebx
push 0x191
push 0x102d589c
push eax
call fcn.100048f0
push ebx
push 0x196
push 0x102d589c
push eax
call fcn.100048f0
push 0
push 0x514
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.100048f0
push 0
push 0
push 0x102b274a
push eax
call fcn.100048f0
push 0
push 0xb7
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincAutoString.h
push 0xe0e00000
call fcn.100048f0
push 0
push 0x1ac
push 0x102d589c
push eax
call fcn.100048f0
push 0
push 0x359
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlsimpstr.h
push 0x80070057
call fcn.100048f0
mov byte [esp + 0x2f8], 3
lea eax, [esp + 0xf4]
push eax
call fcn.10085de0
mov dword [esp + 0x2f8], 0xffffffff
lea ecx, [esp + 0x18]
push ecx
call fcn.100b9200
mov ecx, dword [esp + 0x2f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4