Function at 0x101019d0
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x864
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x1025acd4], 0
push ebx
push esi
push edi
mov dword [ebp - 0x864], ecx
je 0x10102063
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x414]
push eax
push 0x102
call fcn.100dbd90
lea eax, [ebp - 0x20c]
push eax
push 0x102
call fcn.100dbd90
add esp, 0x28
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x10101ae5
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push str.regsvr32.exe
push eax
call edi
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x10101a83
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0xe
call fcn.10003680
add esp, 4
test eax, eax
je 0x10101a9c
lea ecx, [ebp - 0x20c]
push ecx
call eax
jmp 0x10101aa9
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
test esi, esi
je 0x10101ab6
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp ebx, 0xffffffff
je 0x10101ac0
test bl, 0x10
je 0x10101ae5
push str....._regsvr32.exe
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x20c]
push eax
call fcn.1000aa00
add esp, 4
test eax, eax
je 0x10102063
mov eax, dword [0x1025ad44]
xor edx, edx
mov ecx, dword [0x1025ad40]
or ebx, 0xffffffff
sub eax, ecx
mov dword [ebp - 0x83c], 0
sar eax, 2
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x834], 0
mov dword [ebp - 0x85c], 0
mov dword [ebp - 0x858], 0
mov dword [ebp - 0x854], 0
mov dword [ebp - 0x840], edx
test eax, eax
je 0x10101fa9
mov eax, 0x10214738
shr eax, 0x10
mov dword [ebp - 0x84c], eax
mov eax, dword [ecx + edx*4]
sub eax, 0x10
push eax
call fcn.10002a60
add esp, 4
cmp dword [eax + 4], 0
lea edi, [eax + 0x10]
mov dword [ebp - 0x848], edi
jge 0x10101b7c
mov dword [ebp - 0x844], 0xffffffff
jmp 0x10101ba6
push 0x10205494
push edi
call sub.msvcrt.dll_wcsstr
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10101b9c
mov dword [ebp - 0x844], 0xffffffff
jmp 0x10101ba6
sub ebx, edi
sar ebx, 1
mov dword [ebp - 0x844], ebx
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
cmp dword [ebp - 0x84c], 0
lea esi, [eax + 0x10]
mov dword [ebp - 0x82c], esi
jne 0x10101cf5
push 0
mov ecx, 0x1025bea0
call fcn.101beff4
mov ebx, eax
mov dword [ebp - 0x830], 1
test ebx, ebx
je 0x10101d0d
mov ecx, 0x10214738
movzx eax, cx
shr eax, 4
inc eax
mov dword [ebp - 0x828], eax
lea ebx, [ebx]
push 0
push eax
push 6
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
test eax, eax
je 0x10101c27
mov edx, 0x10214738
movzx ecx, dx
push ecx
push eax
push ebx
call fcn.10003980
add esp, 0xc
test eax, eax
jne 0x10101c4f
push dword [ebp - 0x830]
mov ecx, 0x1025bea0
call fcn.101beff4
inc dword [ebp - 0x830]
mov ebx, eax
test ebx, ebx
je 0x10101d0d
mov eax, dword [ebp - 0x828]
jmp 0x10101c00
test ebx, ebx
je 0x10101d0d
push 6
push dword [ebp - 0x828]
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x10101d0d
mov edx, 0x10214738
movzx ecx, dx
push ecx
push eax
push ebx
call fcn.10003980
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10101d0d
movzx ecx, word [ebx]
mov eax, ecx
mov edx, ecx
mov dword [ebp - 0x830], eax
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or ecx, eax
mov dword [ebp - 0x828], edx
jge 0x10101ccc
push edx
lea ecx, [ebp - 0x82c]
call fcn.10003310
movzx eax, word [ebx]
mov esi, dword [ebp - 0x82c]
mov edx, dword [ebp - 0x828]
jmp 0x10101cd2
mov eax, dword [ebp - 0x830]
movzx ecx, ax
lea eax, [ebx + 2]
push ecx
push eax
push edx
push esi
call fcn.101eb860
mov eax, dword [ebp - 0x828]
add esp, 0x10
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
jmp 0x10101d0d
push 3
push 0x10214738
lea ecx, [ebp - 0x82c]
call fcn.10003740
mov esi, dword [ebp - 0x82c]
mov ecx, dword [ebp - 0x844]
cmp ecx, 0xffffffff
je 0x10101e6f
mov edx, dword [edi - 0xc]
mov ebx, 0
mov eax, edx
mov dword [ebp - 0x828], edx
sub eax, ecx
sets bl
dec ebx
and ebx, eax
cmp ebx, edx
jl 0x10101d49
lea eax, [edi - 0x10]
push eax
call fcn.10002a60
add esp, 4
lea esi, [eax + 0x10]
jmp 0x10101d9c
mov ecx, dword [edi - 0x10]
test ecx, ecx
je 0x10101d59
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x10101d65
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov edx, dword [eax]
mov ecx, eax
push 2
push ebx
call dword [edx]
test eax, eax
je 0x101021e2
lea esi, [eax + 0x10]
xor eax, eax
lea ecx, [ebx + ebx]
mov dword [esi - 0xc], ebx
mov word [ecx + esi], ax
mov eax, dword [ebp - 0x828]
sub eax, ebx
push ecx
lea eax, [edi + eax*2]
push eax
push ecx
push esi
call fcn.10004510
add esp, 0x10
push dword [esi - 0xc]
lea ecx, [ebp - 0x82c]
push esi
call fcn.10002970
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10101dc3
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x844]
xor edx, edx
mov ecx, dword [edi - 0xc]
mov eax, ecx
sub eax, ebx
test ebx, ebx
sets dl
dec edx
and edx, ebx
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x828], edx
sets bl
dec ebx
and ebx, eax
mov eax, SysReAllocString
sub eax, ebx
cmp eax, edx
jl 0x10101e00
lea eax, [ebx + edx]
mov dword [ebp - 0x850], eax
jmp 0x10101e06
mov eax, dword [ebp - 0x850]
mov esi, ecx
sub esi, edx
cmp eax, ecx
jle 0x10101e10
mov ebx, esi
test ebx, ebx
jle 0x10101e69
sub ecx, ebx
sub esi, ebx
cmp dword [edi - 4], 1
mov dword [ebp - 0x830], ecx
jle 0x10101e3e
push dword [edi - 0xc]
lea ecx, [ebp - 0x848]
call fcn.10002c20
mov edi, dword [ebp - 0x848]
mov edx, dword [ebp - 0x828]
lea ecx, [esi*2 + 2]
push ecx
lea eax, [ebx + edx]
lea eax, [edi + eax*2]
push eax
push ecx
lea eax, [edi + edx*2]
push eax
call fcn.10007350
mov eax, dword [ebp - 0x830]
add esp, 0x10
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
mov esi, dword [ebp - 0x82c]
xor eax, eax
push eax
mov word [ebp - 0x824], ax
lea eax, [ebp - 0x824]
push eax
push 0x208
push 0
push edi
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
je 0x10101f53
lea eax, [ebp - 0x824]
push eax
lea ecx, [ebp - 0x860]
call fcn.10002490
mov ebx, dword [ebp - 0x838]
mov edi, dword [ebp - 0x860]
cmp dword [ebp - 0x834], ebx
je 0x10101edd
lea eax, [edi - 0x10]
push eax
call fcn.10002a60
add eax, 0x10
add esp, 4
mov dword [ebx], eax
add dword [ebp - 0x838], 4
jmp 0x10101ef0
lea eax, [ebp - 0x860]
push eax
push ebx
lea ecx, [ebp - 0x83c]
call fcn.1001ddd0
or ebx, 0xffffffff
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x10101f0a
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x858]
cmp dword [ebp - 0x854], edi
je 0x10101f38
lea eax, [esi - 0x10]
push eax
call fcn.10002a60
add eax, 0x10
add esp, 4
mov dword [edi], eax
add dword [ebp - 0x858], 4
mov edi, dword [ebp - 0x848]
jmp 0x10101f56
lea eax, [ebp - 0x82c]
push eax
push edi
lea ecx, [ebp - 0x85c]
call fcn.100048e0
mov edi, dword [ebp - 0x848]
jmp 0x10101f56
or ebx, 0xffffffff
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10101f6d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x10101f84
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x1025ad44]
mov edx, dword [ebp - 0x840]
mov ecx, dword [0x1025ad40]
inc edx
sub eax, ecx
mov dword [ebp - 0x840], edx
sar eax, 2
cmp edx, eax
jb 0x10101b52
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x840]
call fcn.10002490
mov edi, dword [ebp - 0x838]
mov esi, dword [ebp - 0x840]
cmp dword [ebp - 0x834], edi
je 0x10101fe9
lea eax, [esi - 0x10]
push eax
call fcn.10002a60
add eax, 0x10
add esp, 4
mov dword [edi], eax
add dword [ebp - 0x838], 4
jmp 0x10101ffc
lea eax, [ebp - 0x840]
push eax
push edi
lea ecx, [ebp - 0x83c]
call fcn.1001ddd0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x10102011
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x838]
xor ecx, ecx
sub esi, dword [ebp - 0x83c]
mov edx, 0x43c
sar esi, 2
mov eax, esi
mov dword [ebp - 0x850], esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new___unsigned_int_
mov edi, eax
add esp, 4
mov dword [ebp - 0x84c], edi
test edi, edi
jne 0x10102076
lea ecx, [ebp - 0x85c]
call fcn.1002a3c0
lea ecx, [ebp - 0x83c]
call fcn.1002a3c0
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101f99c6
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x838]
sub eax, dword [ebp - 0x83c]
sar eax, 2
imul eax, eax, 0x43c
push eax
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
xor ebx, ebx
test esi, esi
je 0x10102106
add edi, 4
mov dword [edi - 4], 0x43c
mov edx, 0x104
mov dword [edi + 0x420], 1
mov ecx, edi
mov eax, dword [ebp - 0x83c]
mov esi, dword [eax + ebx*4]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x101020e3
movzx eax, word [esi]
test ax, ax
je 0x101020e3
mov word [ecx], ax
add esi, 2
add ecx, 2
sub edx, 1
jne 0x101020c1
jmp 0x101020e7
test edx, edx
jne 0x101020ea
sub ecx, 2
mov esi, dword [ebp - 0x850]
xor eax, eax
inc ebx
mov word [ecx], ax
add edi, 0x43c
cmp ebx, esi
jb 0x101020a0
mov edi, dword [ebp - 0x84c]
mov ebx, dword [ebp - 0x864]
cmp dword [ebx + 0xc0], 0
je 0x10102185
mov ecx, dword [ebx + 4]
push str.IEDll
push esi
push edi
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebx + 0xc0]
push eax
call fcn.10176200
test eax, eax
je 0x10102185
imul eax, esi, 0x43c
cmp dword [eax + edi - 0x22c], 0
je 0x101021b6
lea ebx, [esi - 1]
xor esi, esi
test ebx, ebx
je 0x101021b6
add edi, 0x210
cmp dword [edi], 0
je 0x10102178
mov eax, dword [ebp - 0x85c]
push dword [eax + esi*4]
mov eax, dword [ebp - 0x83c]
push dword [eax + esi*4]
lea eax, [ebp - 0x20c]
push eax
call fcn.10101730
add esp, 0xc
inc esi
add edi, 0x43c
cmp esi, ebx
jb 0x10102152
jmp 0x101021b6
lea edi, [esi - 1]
xor esi, esi
test edi, edi
je 0x101021b6
mov edi, edi
mov eax, dword [ebp - 0x85c]
push dword [eax + esi*4]
mov eax, dword [ebp - 0x83c]
push dword [eax + esi*4]
lea eax, [ebp - 0x20c]
push eax
call fcn.10101730
inc esi
add esp, 0xc
cmp esi, edi
jb 0x10102190
lea ecx, [ebp - 0x85c]
call fcn.1002a3c0
lea ecx, [ebp - 0x83c]
call fcn.1002a3c0
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret
call fcn.10003970
int3