Function at 0x4ab2db
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2770
call fcn.005918e0
mov eax, dword [0x6c45ac]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov dword [ebp - 0x274c], eax
mov esi, ecx
mov eax, dword [ebp + 0x18]
push edi
mov dword [ebp - 0x2768], edx
mov dword [ebp - 0x2748], ebx
mov dword [ebp - 0x2750], eax
call fcn.004ab083
test al, al
je 0x4acae6
xor eax, eax
test ebx, ebx
push 0x108
setne al
xor ebx, ebx
mov dword [ebp - 0x2740], eax
lea eax, [ebp - 0x23f8]
push ebx
push eax
mov dword [ebp - 0x2730], ebx
mov dword [ebp - 0x2758], ebx
mov dword [ebp - 0x275c], ebx
mov dword [ebp - 0x2764], ebx
mov dword [ebp - 0x2754], ebx
mov dword [ebp - 0x2760], ebx
call fcn.005a88e0
push 0x2cc
lea eax, [ebp - 0x272c]
push ebx
push eax
call fcn.005a88e0
push 0x2000
lea eax, [ebp - 0x22f0]
push ebx
push eax
call fcn.005a88e0
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
add esp, 0x30
test esi, esi
je 0x4acae6
push ebx
push 0x80
push 3
push ebx
push ebx
push accept
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x276c], edi
cmp edi, 0xffffffff
je 0x4acae6
push ebx
push edi
mov dword [0x6e1d7c], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
je 0x4acadf
push ebx
push ebx
push ebx
push 2
push ebx
push edi
mov dword [0x6cfc38], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x2770], eax
test eax, eax
je 0x4acadf
push ebx
push ebx
push ebx
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
mov dword [ebp - 0x2734], esi
test esi, esi
je 0x4acad3
lea eax, [ebp - 0x2754]
mov dword [0x6cfc3c], esi
push eax
lea eax, [ebp - 0x275c]
push eax
lea eax, [ebp - 0x2758]
push eax
push 6
push esi
call dword [0x6cfc14]
test eax, eax
je 0x4acac6
lea eax, [ebp - 0x2754]
push eax
lea eax, [ebp - 0x2730]
push eax
lea eax, [ebp - 0x2758]
push eax
push 4
push esi
call dword [0x6cfc14]
test eax, eax
je 0x4acac6
lea eax, [ebp - 0x2754]
push eax
lea eax, [ebp - 0x2760]
push eax
lea eax, [ebp - 0x2758]
push eax
push 3
push esi
call dword [0x6cfc14]
test eax, eax
je 0x4acac6
mov edx, dword [ebp - 0x2760]
mov ecx, ebx
cmp dword [edx], ecx
jbe 0x4ab4ce
mov eax, dword [ebp - 0x275c]
mov edi, dword [eax]
lea eax, [edx + 4]
cmp edi, dword [eax]
je 0x4ab4c1
inc ecx
add eax, 0x30
cmp ecx, dword [edx]
jb 0x4ab4b3
jmp 0x4ab4ce
imul eax, ecx, 0x30
add eax, 4
add eax, edx
mov dword [0x6cfc44], eax
lea eax, [ebp - 0x2754]
push eax
lea eax, [ebp - 0x2764]
push eax
lea eax, [ebp - 0x2758]
push eax
push 5
push esi
call dword [0x6cfc14]
test eax, eax
je 0x4acac6
mov eax, dword [ebp - 0x2764]
lea ecx, [ebp - 0x272c]
mov dword [0x6cfc40], eax
mov edx, 0x2cc
mov eax, dword [ebp - 0x275c]
push dword [eax + 0xa0]
mov eax, dword [eax + 0xa4]
add eax, esi
push eax
call fcn.0045de19
mov edi, ebx
pop ecx
pop ecx
cmp dword [ebp - 0x2748], ebx
jne 0x4ab5e2
mov edx, dword [ebp - 0x2730]
mov esi, ebx
cmp dword [edx], ebx
jbe 0x4ab588
lea ecx, [edx + 4]
mov eax, dword [ecx]
cmp ebx, dword [ecx + 4]
jb 0x4ab57e
ja 0x4ab554
cmp dword [ebp - 0x2674], eax
jb 0x4ab57e
mov eax, dword [ecx + 8]
mov edi, dword [ecx]
mov dword [ebp - 0x2744], eax
xor eax, eax
add dword [ebp - 0x2744], edi
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x4ab586
ja 0x4ab57e
mov eax, dword [ebp - 0x2674]
cmp eax, dword [ebp - 0x2744]
jb 0x4ab586
inc esi
add ecx, 0x6c
cmp esi, dword [edx]
jb 0x4ab543
mov edi, ebx
cmp esi, dword [edx]
je 0x4ab6cd
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
imul ecx, esi, 0x6c
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
mov eax, dword [ebp - 0x2730]
add esp, 0x18
cmp esi, dword [eax]
je 0x4ab6cd
jmp 0x4ab6b7
lea eax, [ebp - 0x2738]
mov dword [ebp - 0x273c], ebx
push eax
push 4
lea eax, [ebp - 0x273c]
push eax
push ebx
push dword [ebp - 0x2668]
push esi
call fcn.004ab1c6
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov eax, dword [ebp - 0x273c]
cmp dword [edx], ecx
jbe 0x4ab65f
mov esi, dword [ebp - 0x2730]
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x4ab64b
ja 0x4ab62b
cmp eax, dword [edx]
jb 0x4ab64b
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4ab653
mov eax, dword [ebp - 0x273c]
ja 0x4ab645
cmp eax, esi
jb 0x4ab653
mov esi, dword [ebp - 0x2730]
inc ecx
add edx, 0x6c
cmp ecx, dword [esi]
jb 0x4ab620
mov eax, dword [ebp - 0x273c]
mov edx, dword [ebp - 0x2730]
cmp ecx, dword [edx]
je 0x4ab6cd
imul esi, ecx, 0x6c
sub eax, dword [esi + edx + 4]
push eax
push str.0x_08x
push dword [ebp - 0x274c]
call fcn.00431ebc
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x4aba06
mov eax, dword [ebp - 0x2674]
mov dword [ebp - 0x23f8], eax
mov eax, dword [ebp - 0x2668]
mov dword [ebp - 0x23c8], eax
mov eax, dword [ebp - 0x2678]
push 3
mov dword [ebp - 0x23d8], eax
pop eax
push 0x2000
mov dword [ebp - 0x23cc], eax
mov dword [ebp - 0x23bc], eax
mov dword [ebp - 0x23ec], eax
lea eax, [ebp - 0x22f0]
push ebx
push eax
mov dword [ebp - 0x23f4], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23d4], ebx
call fcn.005a88e0
add esp, 0xc
mov dword [ebp - 0x2744], ebx
push ebx
push ebx
push ebx
push fcn.004ab1c6
lea eax, [ebp - 0x272c]
push eax
lea eax, [ebp - 0x23f8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
push ebx
push 0x14c
call dword [0x6cfc28]
test eax, eax
je 0x4ab9dc
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov dword [ebp - 0x2738], ebx
mov edi, dword [edx]
test edi, edi
je 0x4ab7bb
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x4ab7ad
ja 0x4ab795
mov eax, dword [ebp - 0x23f8]
cmp eax, dword [edx]
jb 0x4ab7ad
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4ab7b5
ja 0x4ab7ad
cmp dword [ebp - 0x23f8], esi
jb 0x4ab7b5
inc ecx
add edx, 0x6c
cmp ecx, edi
jb 0x4ab784
mov dword [ebp - 0x2738], ecx
cmp ecx, edi
je 0x4ab9b8
imul esi, ecx, 0x6c
mov dword [ebp - 0x274c], esi
cmp word [ebp - 0x22f0], bx
jne 0x4ab883
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x68]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [esi + eax + 4]
lea eax, [ebp - 0x68]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x28
jmp 0x4ab9b8
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
push 0x63a8c0
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [esi + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
mov ecx, dword [ebp - 0x2730]
add esp, 0x28
mov eax, dword [ebp - 0x2738]
cmp eax, dword [ecx]
je 0x4ab9b8
cmp dword [ebp - 0x2740], ebx
je 0x4ab9b8
mov edi, dword [ebp - 0x274c]
mov eax, ecx
movzx esi, word [esi + eax + 0x26]
movzx edx, word [edi + eax + 0x24]
movzx ecx, word [edi + eax + 0x2a]
movzx eax, word [edi + eax + 0x28]
push eax
push ecx
push edx
push esi
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
add esp, 0x18
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x104
push dword [ebp - 0x2748]
call fcn.005ba880
add esp, 0xc
mov dword [ebp - 0x2740], ebx
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x4ab9dc
mov esi, dword [ebp - 0x2744]
inc esi
mov dword [ebp - 0x2744], esi
cmp esi, 5
jl 0x4ab73c
xor eax, eax
lea edi, [ebp - 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x22f0]
push eax
call fcn.005b93d0
inc eax
pop ecx
cmp eax, 0x3fffffff
jle 0x4ac9bb
mov esi, ebx
jmp 0x4ac9d7
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
push 0x62c260
push edi
call esi
test eax, eax
je 0x4ac06a
push str.user32
push edi
call esi
test eax, eax
je 0x4ac06a
push str.ntdll
push edi
call esi
test eax, eax
je 0x4ac06a
push str.kernelbase
push edi
call esi
test eax, eax
je 0x4ac06a
mov eax, dword [ebp - 0x2674]
mov dword [ebp - 0x23f8], eax
mov eax, dword [ebp - 0x2668]
mov dword [ebp - 0x23c8], eax
mov eax, dword [ebp - 0x2678]
push 3
mov dword [ebp - 0x23d8], eax
pop eax
push 0x2000
mov dword [ebp - 0x23cc], eax
mov dword [ebp - 0x23bc], eax
mov dword [ebp - 0x23ec], eax
lea eax, [ebp - 0x22f0]
push ebx
push eax
mov dword [ebp - 0x23f4], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23d4], ebx
call fcn.005a88e0
mov edi, dword [ebp - 0x2730]
add esp, 0xc
mov esi, ebx
cmp dword [edi], ebx
jbe 0x4abaec
lea ecx, [edi + 4]
cmp ebx, dword [ecx + 4]
jb 0x4abae4
ja 0x4abacc
mov eax, dword [ebp - 0x2674]
cmp eax, dword [ecx]
jb 0x4abae4
mov edx, dword [ecx + 8]
xor eax, eax
add edx, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x4abaec
ja 0x4abae4
cmp dword [ebp - 0x2674], edx
jb 0x4abaec
inc esi
add ecx, 0x6c
cmp esi, dword [edi]
jb 0x4ababb
cmp esi, dword [edi]
je 0x4abc27
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
imul esi, esi, 0x6c
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
push 0x65bd34
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [esi + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
mov edi, dword [ebp - 0x2748]
add esp, 0x34
mov eax, dword [ebp - 0x2740]
mov dword [ebp - 0x2740], eax
test edi, edi
je 0x4abc27
mov ecx, dword [ebp - 0x2730]
movzx eax, word [esi + ecx + 0x28]
push eax
movzx eax, word [esi + ecx + 0x2a]
push eax
movzx eax, word [esi + ecx + 0x24]
push eax
movzx eax, word [esi + ecx + 0x26]
push eax
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
add esp, 0x18
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x104
push edi
call fcn.005ba880
add esp, 0xc
mov dword [ebp - 0x2740], ebx
lea eax, [ebp - 0x274c]
mov dword [ebp - 0x2744], ebx
push eax
push 4
lea eax, [ebp - 0x2744]
push eax
push ebx
push dword [ebp - 0x2668]
push dword [ebp - 0x2734]
call fcn.004ab1c6
mov edi, dword [ebp - 0x2730]
mov ecx, ebx
cmp ecx, dword [edi]
jae 0x4abc91
lea edx, [edi + 4]
cmp ebx, dword [edx + 4]
jb 0x4abc87
ja 0x4abc6f
mov eax, dword [ebp - 0x2744]
cmp eax, dword [edx]
jb 0x4abc87
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4abc8f
ja 0x4abc87
cmp dword [ebp - 0x2744], esi
jb 0x4abc8f
inc ecx
add edx, 0x6c
cmp ecx, dword [edi]
jb 0x4abc5e
cmp ecx, dword [edi]
je 0x4abe3e
push 0x208
imul esi, ecx, 0x6c
lea eax, [ebp - 0x270]
push ebx
push eax
cmp word [ebp - 0x22f0], bx
jne 0x4abd67
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
push 0x65bd34
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bc0ee
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2744]
sub ecx, dword [esi + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
mov edi, dword [ebp - 0x2734]
add esp, 0x34
jmp 0x4abdd5
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov edi, dword [ebp - 0x2734]
mov eax, dword [esi + eax + 0x18]
add eax, 4
add eax, edi
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
push 0x63a8c0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0xc
cmp dword [ebp - 0x2740], ebx
je 0x4abe3e
mov ecx, dword [ebp - 0x2730]
movzx eax, word [esi + ecx + 0x28]
push eax
movzx eax, word [esi + ecx + 0x2a]
push eax
movzx eax, word [esi + ecx + 0x24]
push eax
movzx eax, word [esi + ecx + 0x26]
push eax
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
mov eax, dword [esi + eax + 0x18]
add eax, 4
add eax, edi
add esp, 0x18
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x104
push dword [ebp - 0x2748]
call fcn.005ba880
mov dword [ebp - 0x2740], ebx
add esp, 0xc
push ebx
push ebx
push ebx
push fcn.004ab1c6
lea eax, [ebp - 0x272c]
push eax
lea eax, [ebp - 0x23f8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
push ebx
push 0x14c
call dword [0x6cfc28]
test eax, eax
je 0x4ab9dc
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x4ab9dc
mov ecx, dword [ebp - 0x2730]
mov esi, ebx
mov edi, dword [ecx]
test edi, edi
je 0x4abec3
add ecx, 4
mov eax, dword [ecx]
cmp ebx, dword [ecx + 4]
jb 0x4abebb
ja 0x4abea3
cmp dword [ebp - 0x23e8], eax
jb 0x4abebb
mov edx, dword [ecx + 8]
xor eax, eax
add edx, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x4abec3
ja 0x4abebb
cmp dword [ebp - 0x23e8], edx
jb 0x4abec3
inc esi
add ecx, 0x6c
cmp esi, edi
jb 0x4abe92
cmp esi, edi
je 0x4abe3e
imul edi, esi, 0x6c
lea eax, [ebp - 0x270]
push 0x208
push ebx
push eax
mov dword [ebp - 0x274c], edi
cmp word [ebp - 0x22f0], bx
jne 0x4abfa0
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
mov esi, 0x1000
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.005bc0ee
push 0x65bd34
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.005bc0ee
mov edx, dword [ebp - 0x274c]
lea edi, [ebp - 0x2c]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23e8]
sub ecx, dword [edx + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.005bc0ee
add esp, 0x34
jmp 0x4abe3e
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
push 0x63a8c0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
mov eax, dword [ebp - 0x2730]
add esp, 0xc
cmp esi, dword [eax]
je 0x4abe3e
cmp dword [ebp - 0x2740], ebx
je 0x4abe3e
movzx esi, word [edi + eax + 0x26]
movzx edx, word [edi + eax + 0x24]
movzx ecx, word [edi + eax + 0x2a]
movzx eax, word [edi + eax + 0x28]
push eax
push ecx
push edx
push esi
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
jmp 0x4abe1a
mov eax, dword [ebp - 0x2674]
mov dword [ebp - 0x23f8], eax
mov eax, dword [ebp - 0x2668]
mov dword [ebp - 0x23c8], eax
mov eax, dword [ebp - 0x2678]
push 3
mov dword [ebp - 0x23d8], eax
pop eax
push 0x2000
mov dword [ebp - 0x23cc], eax
mov dword [ebp - 0x23bc], eax
mov dword [ebp - 0x23ec], eax
lea eax, [ebp - 0x22f0]
push ebx
push eax
mov dword [ebp - 0x2744], ebx
mov dword [ebp - 0x23f4], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23d4], ebx
call fcn.005a88e0
mov ecx, dword [ebp - 0x2730]
add esp, 0xc
mov edx, ebx
mov eax, dword [ecx]
mov dword [ebp - 0x273c], eax
test eax, eax
je 0x4ac120
mov esi, dword [ebp - 0x2674]
add ecx, 4
cmp ebx, dword [ecx + 4]
jb 0x4ac112
ja 0x4ac0f8
cmp esi, dword [ecx]
jb 0x4ac112
mov edi, dword [ecx + 8]
xor eax, eax
add edi, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
mov eax, dword [ebp - 0x273c]
jb 0x4ac11a
ja 0x4ac112
cmp esi, edi
jb 0x4ac11a
inc edx
add ecx, 0x6c
cmp edx, eax
jb 0x4ac0ed
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
cmp edx, eax
je 0x4ac31b
imul edi, edx, 0x6c
lea eax, [ebp - 0x270]
push 0x208
push ebx
push eax
mov dword [ebp - 0x2738], edi
cmp word [ebp - 0x22f0], bx
jne 0x4ac1ee
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
mov edx, dword [ebp - 0x2738]
lea edi, [ebp - 0x2c]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [edx + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x28
jmp 0x4ac31b
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov eax, dword [edi + eax + 0x18]
mov edi, dword [ebp - 0x2734]
add eax, 4
add eax, edi
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
push 0x63a8c0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0xc
lea eax, [ebp - 0x270]
push str.kernel32.dll
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac321
push 0x631568
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac321
push str.kernelbase.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac321
push str.ntdll.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac321
mov edx, dword [ebp - 0x2738]
lea edi, [ebp - 0x2c]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [edx + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x1c
mov dword [ebp - 0x2744], 1
mov edi, dword [ebp - 0x2734]
lea eax, [ebp - 0x2738]
mov dword [ebp - 0x274c], ebx
push eax
push 4
lea eax, [ebp - 0x274c]
push eax
push ebx
push dword [ebp - 0x2668]
push edi
call fcn.004ab1c6
mov ecx, dword [ebp - 0x2730]
mov eax, ebx
mov dword [ebp - 0x273c], eax
cmp eax, dword [ecx]
jae 0x4ac3b0
mov edi, dword [ebp - 0x274c]
lea edx, [ecx + 4]
mov esi, dword [edx]
cmp ebx, dword [edx + 4]
jb 0x4ac394
ja 0x4ac36c
cmp edi, esi
jb 0x4ac394
mov eax, dword [edx + 8]
mov dword [ebp - 0x2738], eax
xor eax, eax
add dword [ebp - 0x2738], esi
adc eax, dword [edx + 4]
cmp ebx, eax
mov eax, dword [ebp - 0x273c]
jb 0x4ac3a2
ja 0x4ac394
cmp edi, dword [ebp - 0x2738]
jb 0x4ac3a2
inc eax
add edx, 0x6c
mov dword [ebp - 0x273c], eax
cmp eax, dword [ecx]
jb 0x4ac35f
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
mov edi, dword [ebp - 0x2734]
cmp eax, dword [ecx]
je 0x4ac6c7
cmp word [ebp - 0x22f0], bx
jne 0x4ac4f0
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
imul ecx, dword [ebp - 0x273c], 0x6c
mov eax, dword [ebp - 0x2730]
mov dword [ebp - 0x2738], ecx
mov eax, dword [ecx + eax + 0x18]
add eax, 4
add eax, edi
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov edi, dword [ebp - 0x2738]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [edi + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
mov edx, dword [ebp - 0x2740]
add esp, 0x28
mov dword [ebp - 0x2740], edx
cmp dword [ebp - 0x2748], ebx
je 0x4ac6c7
mov ecx, dword [ebp - 0x2730]
movzx eax, word [edi + ecx + 0x28]
push eax
movzx eax, word [edi + ecx + 0x2a]
push eax
movzx eax, word [edi + ecx + 0x24]
push eax
movzx eax, word [edi + ecx + 0x26]
push eax
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
add esp, 0x18
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x104
push dword [ebp - 0x2748]
call fcn.005ba880
jmp 0x4ac6be
cmp dword [ebp - 0x2744], ebx
jne 0x4ac64f
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005a88e0
imul ecx, dword [ebp - 0x273c], 0x6c
mov eax, dword [ebp - 0x2730]
mov dword [ebp - 0x2738], ecx
mov eax, dword [ecx + eax + 0x18]
add eax, 4
add eax, edi
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
push 0x63a8c0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0xc
lea eax, [ebp - 0x270]
push str.kernel32.dll
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac643
push 0x631568
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac643
push str.kernelbase.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac643
push str.ntdll.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac643
mov edx, dword [ebp - 0x2738]
lea edi, [ebp - 0x2c]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x23f8]
sub ecx, dword [edx + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
mov edi, dword [ebp - 0x2734]
add esp, 0x1c
mov dword [ebp - 0x2744], 1
mov eax, dword [ebp - 0x273c]
mov ecx, dword [ebp - 0x2730]
mov edx, dword [ebp - 0x2740]
mov dword [ebp - 0x2740], edx
cmp dword [ebp - 0x2748], ebx
je 0x4ac6c7
imul esi, eax, 0x6c
movzx eax, word [esi + ecx + 0x28]
push eax
movzx eax, word [esi + ecx + 0x2a]
push eax
movzx eax, word [esi + ecx + 0x24]
push eax
movzx eax, word [esi + ecx + 0x26]
push eax
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
mov eax, dword [esi + eax + 0x18]
add eax, 4
add eax, edi
add esp, 0x18
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x104
push dword [ebp - 0x2748]
call fcn.005ba880
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
add esp, 0xc
mov dword [ebp - 0x2740], ebx
push ebx
push ebx
push ebx
push fcn.004ab1c6
lea eax, [ebp - 0x272c]
push eax
lea eax, [ebp - 0x23f8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
push ebx
push 0x14c
call dword [0x6cfc28]
test eax, eax
je 0x4ab9dc
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x4ab9dc
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov eax, dword [edx]
mov dword [ebp - 0x2738], eax
test eax, eax
je 0x4ac760
add edx, 4
mov esi, eax
mov eax, dword [edx]
cmp ebx, dword [edx + 4]
jb 0x4ac74c
ja 0x4ac734
cmp dword [ebp - 0x23e8], eax
jb 0x4ac74c
mov edi, dword [edx + 8]
xor eax, eax
add edi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4ac754
ja 0x4ac74c
cmp dword [ebp - 0x23e8], edi
jb 0x4ac754
inc ecx
add edx, 0x6c
cmp ecx, esi
jb 0x4ac723
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
mov eax, dword [ebp - 0x2738]
cmp ecx, eax
je 0x4ac6c7
imul edi, ecx, 0x6c
lea eax, [ebp - 0x270]
push 0x208
push ebx
push eax
mov dword [ebp - 0x2738], edi
cmp word [ebp - 0x22f0], bx
jne 0x4ac82e
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov edi, dword [ebp - 0x2738]
mov ecx, dword [ebp - 0x23e8]
sub ecx, dword [edi + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x28
jmp 0x4ac967
call fcn.005a88e0
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.005ba880
push 0x63a8c0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ab1ac
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0xc
cmp dword [ebp - 0x2744], ebx
jne 0x4ac967
push str.kernel32.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac967
push 0x631568
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac967
push str.kernelbase.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac967
push str.ntdll.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ac967
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x68]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2730]
mov edi, dword [ebp - 0x2738]
mov ecx, dword [ebp - 0x23e8]
sub ecx, dword [edi + eax + 4]
lea eax, [ebp - 0x68]
push ecx
push str._0x_08x
push 0x14
push eax
call fcn.0040b613
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bc0ee
add esp, 0x1c
mov dword [ebp - 0x2744], 1
cmp dword [ebp - 0x2740], ebx
je 0x4ac6c7
mov eax, dword [ebp - 0x2730]
movzx esi, word [edi + eax + 0x26]
movzx edx, word [edi + eax + 0x24]
movzx ecx, word [edi + eax + 0x2a]
movzx eax, word [edi + eax + 0x28]
push eax
push ecx
push edx
push esi
push str._d._d._d._d
push dword [ebp - 0x2750]
call fcn.00431ebc
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
jmp 0x4ac69d
lea esi, [eax + eax]
mov eax, esi
call fcn.00591f80
mov ecx, esp
lea edx, [ebp - 0x22f0]
push 3
push esi
call fcn.004115f2
mov esi, eax
push esi
call fcn.005acdf0
inc eax
push eax
push esi
call fcn.005bc09e
lea ecx, [ebp - 0x2460]
call fcn.00410407
push esi
call fcn.005acdf0
push eax
mov edx, esi
lea ecx, [ebp - 0x2460]
call fcn.0041042b
lea ecx, [ebp - 0x2460]
call fcn.004104d1
push 0x10
lea eax, [ebp - 0x2408]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.005a8a40
push 0x40
pop edi
push edi
lea eax, [ebp - 0x2b0]
push ebx
push eax
call fcn.005a88e0
push edi
lea eax, [ebp - 0x2f0]
push ebx
push eax
call fcn.005a88e0
add esp, 0x38
mov esi, ebx
movzx eax, byte [ebp + esi - 0x40]
push eax
push str._02x
lea eax, [ebp - 0x2f0]
push edi
push eax
call fcn.00409d8c
lea eax, [ebp - 0x2f0]
push eax
lea eax, [ebp - 0x2b0]
push edi
push eax
call fcn.005bf6dd
add esp, 0x1c
inc esi
cmp esi, 0x10
jl 0x4aca45
lea eax, [ebp - 0x2b0]
push eax
call fcn.005acdf0
pop ecx
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jg 0x4acaac
lea eax, [esi + esi]
call fcn.00591f80
mov ecx, esp
lea edx, [ebp - 0x2b0]
push 3
push esi
call fcn.00411626
mov ebx, eax
push ebx
push 0x105
push dword [ebp - 0x2768]
call fcn.005ba880
mov esi, dword [ebp - 0x2734]
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov edi, dword [ebp - 0x276c]
push dword [ebp - 0x2770]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea esp, [ebp - 0x277c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00590be8
leave
ret