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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2770
call fcn.005933d0
mov eax, dword [0x6c75ac]
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.004ac7ba
test al, al
je 0x4ae21d
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.005aa3d0
push 0x2cc
lea eax, [ebp - 0x272c]
push ebx
push eax
call fcn.005aa3d0
push 0x2000
lea eax, [ebp - 0x22f0]
push ebx
push eax
call fcn.005aa3d0
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
add esp, 0x30
test esi, esi
je 0x4ae21d
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 0x4ae21d
push ebx
push edi
mov dword [0x6e4dcc], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
je 0x4ae216
push ebx
push ebx
push ebx
push 2
push ebx
push edi
mov dword [0x6d2c88], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x2770], eax
test eax, eax
je 0x4ae216
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 0x4ae20a
lea eax, [ebp - 0x2754]
mov dword [0x6d2c90], esi
push eax
lea eax, [ebp - 0x275c]
push eax
lea eax, [ebp - 0x2758]
push eax
push 6
push esi
call dword [0x6d2c6c]
test eax, eax
je 0x4ae1fd
lea eax, [ebp - 0x2754]
push eax
lea eax, [ebp - 0x2730]
push eax
lea eax, [ebp - 0x2758]
push eax
push 4
push esi
call dword [0x6d2c6c]
test eax, eax
je 0x4ae1fd
lea eax, [ebp - 0x2754]
push eax
lea eax, [ebp - 0x2760]
push eax
lea eax, [ebp - 0x2758]
push eax
push 3
push esi
call dword [0x6d2c6c]
test eax, eax
je 0x4ae1fd
mov edx, dword [ebp - 0x2760]
mov ecx, ebx
cmp dword [edx], ecx
jbe 0x4acc05
mov eax, dword [ebp - 0x275c]
mov edi, dword [eax]
lea eax, [edx + 4]
cmp edi, dword [eax]
je 0x4acbf8
inc ecx
add eax, 0x30
cmp ecx, dword [edx]
jb 0x4acbea
jmp 0x4acc05
imul eax, ecx, 0x30
add eax, 4
add eax, edx
mov dword [0x6d2c94], 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 [0x6d2c6c]
test eax, eax
je 0x4ae1fd
mov eax, dword [ebp - 0x2764]
lea ecx, [ebp - 0x272c]
mov dword [0x6d2c84], 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.0045e6a8
mov edi, ebx
pop ecx
pop ecx
cmp dword [ebp - 0x2748], ebx
jne 0x4acd19
mov edx, dword [ebp - 0x2730]
mov esi, ebx
cmp dword [edx], ebx
jbe 0x4accbf
lea ecx, [edx + 4]
mov eax, dword [ecx]
cmp ebx, dword [ecx + 4]
jb 0x4accb5
ja 0x4acc8b
cmp dword [ebp - 0x2674], eax
jb 0x4accb5
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 0x4accbd
ja 0x4accb5
mov eax, dword [ebp - 0x2674]
cmp eax, dword [ebp - 0x2744]
jb 0x4accbd
inc esi
add ecx, 0x6c
cmp esi, dword [edx]
jb 0x4acc7a
mov edi, ebx
cmp esi, dword [edx]
je 0x4ace04
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
mov eax, dword [ebp - 0x2730]
add esp, 0x18
cmp esi, dword [eax]
je 0x4ace04
jmp 0x4acdee
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.004ac8fd
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov eax, dword [ebp - 0x273c]
cmp dword [edx], ecx
jbe 0x4acd96
mov esi, dword [ebp - 0x2730]
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x4acd82
ja 0x4acd62
cmp eax, dword [edx]
jb 0x4acd82
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4acd8a
mov eax, dword [ebp - 0x273c]
ja 0x4acd7c
cmp eax, esi
jb 0x4acd8a
mov esi, dword [ebp - 0x2730]
inc ecx
add edx, 0x6c
cmp ecx, dword [esi]
jb 0x4acd57
mov eax, dword [ebp - 0x273c]
mov edx, dword [ebp - 0x2730]
cmp ecx, dword [edx]
je 0x4ace04
imul esi, ecx, 0x6c
sub eax, dword [esi + edx + 4]
push eax
push str.0x_08x
push dword [ebp - 0x274c]
call fcn.00431ebf
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x4ad13d
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.005aa3d0
add esp, 0xc
mov dword [ebp - 0x2744], ebx
push ebx
push ebx
push ebx
push fcn.004ac8fd
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 [0x6d2c78]
test eax, eax
je 0x4ad113
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov dword [ebp - 0x2738], ebx
mov edi, dword [edx]
test edi, edi
je 0x4acef2
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x4acee4
ja 0x4acecc
mov eax, dword [ebp - 0x23f8]
cmp eax, dword [edx]
jb 0x4acee4
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4aceec
ja 0x4acee4
cmp dword [ebp - 0x23f8], esi
jb 0x4aceec
inc ecx
add edx, 0x6c
cmp ecx, edi
jb 0x4acebb
mov dword [ebp - 0x2738], ecx
cmp ecx, edi
je 0x4ad0ef
imul esi, ecx, 0x6c
mov dword [ebp - 0x274c], esi
cmp word [ebp - 0x22f0], bx
jne 0x4acfba
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x28
jmp 0x4ad0ef
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
push 0x63cab0
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
mov ecx, dword [ebp - 0x2730]
add esp, 0x28
mov eax, dword [ebp - 0x2738]
cmp eax, dword [ecx]
je 0x4ad0ef
cmp dword [ebp - 0x2740], ebx
je 0x4ad0ef
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.00431ebf
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.005bc370
add esp, 0xc
mov dword [ebp - 0x2740], ebx
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x4ad113
mov esi, dword [ebp - 0x2744]
inc esi
mov dword [ebp - 0x2744], esi
cmp esi, 5
jl 0x4ace73
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.005baec0
inc eax
pop ecx
cmp eax, 0x3fffffff
jle 0x4ae0f2
mov esi, ebx
jmp 0x4ae10e
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
push 0x62e258
push edi
call esi
test eax, eax
je 0x4ad7a1
push str.user32
push edi
call esi
test eax, eax
je 0x4ad7a1
push str.ntdll
push edi
call esi
test eax, eax
je 0x4ad7a1
push str.kernelbase
push edi
call esi
test eax, eax
je 0x4ad7a1
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.005aa3d0
mov edi, dword [ebp - 0x2730]
add esp, 0xc
mov esi, ebx
cmp dword [edi], ebx
jbe 0x4ad223
lea ecx, [edi + 4]
cmp ebx, dword [ecx + 4]
jb 0x4ad21b
ja 0x4ad203
mov eax, dword [ebp - 0x2674]
cmp eax, dword [ecx]
jb 0x4ad21b
mov edx, dword [ecx + 8]
xor eax, eax
add edx, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x4ad223
ja 0x4ad21b
cmp dword [ebp - 0x2674], edx
jb 0x4ad223
inc esi
add ecx, 0x6c
cmp esi, dword [edi]
jb 0x4ad1f2
cmp esi, dword [edi]
je 0x4ad35e
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
push 0x65e304
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
mov edi, dword [ebp - 0x2748]
add esp, 0x34
mov eax, dword [ebp - 0x2740]
mov dword [ebp - 0x2740], eax
test edi, edi
je 0x4ad35e
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.00431ebf
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.005bc370
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.004ac8fd
mov edi, dword [ebp - 0x2730]
mov ecx, ebx
cmp ecx, dword [edi]
jae 0x4ad3c8
lea edx, [edi + 4]
cmp ebx, dword [edx + 4]
jb 0x4ad3be
ja 0x4ad3a6
mov eax, dword [ebp - 0x2744]
cmp eax, dword [edx]
jb 0x4ad3be
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4ad3c6
ja 0x4ad3be
cmp dword [ebp - 0x2744], esi
jb 0x4ad3c6
inc ecx
add edx, 0x6c
cmp ecx, dword [edi]
jb 0x4ad395
cmp ecx, dword [edi]
je 0x4ad575
push 0x208
imul esi, ecx, 0x6c
lea eax, [ebp - 0x270]
push ebx
push eax
cmp word [ebp - 0x22f0], bx
jne 0x4ad49e
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
push 0x65e304
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
mov edi, dword [ebp - 0x2734]
add esp, 0x34
jmp 0x4ad50c
call fcn.005aa3d0
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.005bc370
push 0x63cab0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0xc
cmp dword [ebp - 0x2740], ebx
je 0x4ad575
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.00431ebf
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.005bc370
mov dword [ebp - 0x2740], ebx
add esp, 0xc
push ebx
push ebx
push ebx
push fcn.004ac8fd
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 [0x6d2c78]
test eax, eax
je 0x4ad113
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x4ad113
mov ecx, dword [ebp - 0x2730]
mov esi, ebx
mov edi, dword [ecx]
test edi, edi
je 0x4ad5fa
add ecx, 4
mov eax, dword [ecx]
cmp ebx, dword [ecx + 4]
jb 0x4ad5f2
ja 0x4ad5da
cmp dword [ebp - 0x23e8], eax
jb 0x4ad5f2
mov edx, dword [ecx + 8]
xor eax, eax
add edx, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x4ad5fa
ja 0x4ad5f2
cmp dword [ebp - 0x23e8], edx
jb 0x4ad5fa
inc esi
add ecx, 0x6c
cmp esi, edi
jb 0x4ad5c9
cmp esi, edi
je 0x4ad575
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 0x4ad6d7
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
mov esi, 0x1000
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.005bdbde
push 0x65e304
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.005bdbde
add esp, 0x34
jmp 0x4ad575
call fcn.005aa3d0
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.005bc370
push 0x63cab0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
mov eax, dword [ebp - 0x2730]
add esp, 0xc
cmp esi, dword [eax]
je 0x4ad575
cmp dword [ebp - 0x2740], ebx
je 0x4ad575
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.00431ebf
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
jmp 0x4ad551
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.005aa3d0
mov ecx, dword [ebp - 0x2730]
add esp, 0xc
mov edx, ebx
mov eax, dword [ecx]
mov dword [ebp - 0x273c], eax
test eax, eax
je 0x4ad857
mov esi, dword [ebp - 0x2674]
add ecx, 4
cmp ebx, dword [ecx + 4]
jb 0x4ad849
ja 0x4ad82f
cmp esi, dword [ecx]
jb 0x4ad849
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 0x4ad851
ja 0x4ad849
cmp esi, edi
jb 0x4ad851
inc edx
add ecx, 0x6c
cmp edx, eax
jb 0x4ad824
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
cmp edx, eax
je 0x4ada52
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 0x4ad925
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x28
jmp 0x4ada52
call fcn.005aa3d0
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.005bc370
push 0x63cab0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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 0x4ada58
push 0x633560
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ada58
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 0x4ada58
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 0x4ada58
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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.004ac8fd
mov ecx, dword [ebp - 0x2730]
mov eax, ebx
mov dword [ebp - 0x273c], eax
cmp eax, dword [ecx]
jae 0x4adae7
mov edi, dword [ebp - 0x274c]
lea edx, [ecx + 4]
mov esi, dword [edx]
cmp ebx, dword [edx + 4]
jb 0x4adacb
ja 0x4adaa3
cmp edi, esi
jb 0x4adacb
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 0x4adad9
ja 0x4adacb
cmp edi, dword [ebp - 0x2738]
jb 0x4adad9
inc eax
add edx, 0x6c
mov dword [ebp - 0x273c], eax
cmp eax, dword [ecx]
jb 0x4ada96
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
mov edi, dword [ebp - 0x2734]
cmp eax, dword [ecx]
je 0x4addfe
cmp word [ebp - 0x22f0], bx
jne 0x4adc27
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
mov edx, dword [ebp - 0x2740]
add esp, 0x28
mov dword [ebp - 0x2740], edx
cmp dword [ebp - 0x2748], ebx
je 0x4addfe
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.00431ebf
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.005bc370
jmp 0x4addf5
cmp dword [ebp - 0x2744], ebx
jne 0x4add86
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.005aa3d0
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.005bc370
push 0x63cab0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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 0x4add7a
push 0x633560
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4add7a
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 0x4add7a
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 0x4add7a
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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 0x4addfe
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.00431ebf
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.005bc370
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
add esp, 0xc
mov dword [ebp - 0x2740], ebx
push ebx
push ebx
push ebx
push fcn.004ac8fd
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 [0x6d2c78]
test eax, eax
je 0x4ad113
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x4ad113
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov eax, dword [edx]
mov dword [ebp - 0x2738], eax
test eax, eax
je 0x4ade97
add edx, 4
mov esi, eax
mov eax, dword [edx]
cmp ebx, dword [edx + 4]
jb 0x4ade83
ja 0x4ade6b
cmp dword [ebp - 0x23e8], eax
jb 0x4ade83
mov edi, dword [edx + 8]
xor eax, eax
add edi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4ade8b
ja 0x4ade83
cmp dword [ebp - 0x23e8], edi
jb 0x4ade8b
inc ecx
add edx, 0x6c
cmp ecx, esi
jb 0x4ade5a
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
mov eax, dword [ebp - 0x2738]
cmp ecx, eax
je 0x4addfe
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 0x4adf65
call fcn.005aa3d0
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.005bc370
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
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.0040b616
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x28
jmp 0x4ae09e
call fcn.005aa3d0
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.005bc370
push 0x63cab0
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ecx, eax
call fcn.004ac8e3
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0xc
cmp dword [ebp - 0x2744], ebx
jne 0x4ae09e
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 0x4ae09e
push 0x633560
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x4ae09e
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 0x4ae09e
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 0x4ae09e
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.0040b616
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.005bdbde
add esp, 0x1c
mov dword [ebp - 0x2744], 1
cmp dword [ebp - 0x2740], ebx
je 0x4addfe
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.00431ebf
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2734]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
jmp 0x4addd4
lea esi, [eax + eax]
mov eax, esi
call fcn.00593a70
mov ecx, esp
lea edx, [ebp - 0x22f0]
push 3
push esi
call fcn.004115f5
mov esi, eax
push esi
call fcn.005ae8e0
inc eax
push eax
push esi
call fcn.005bdb8e
lea ecx, [ebp - 0x2460]
call fcn.0041040a
push esi
call fcn.005ae8e0
push eax
mov edx, esi
lea ecx, [ebp - 0x2460]
call fcn.0041042e
lea ecx, [ebp - 0x2460]
call fcn.004104d4
push 0x10
lea eax, [ebp - 0x2408]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.005aa530
push 0x40
pop edi
push edi
lea eax, [ebp - 0x2b0]
push ebx
push eax
call fcn.005aa3d0
push edi
lea eax, [ebp - 0x2f0]
push ebx
push eax
call fcn.005aa3d0
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.005c11cd
add esp, 0x1c
inc esi
cmp esi, 0x10
jl 0x4ae17c
lea eax, [ebp - 0x2b0]
push eax
call fcn.005ae8e0
pop ecx
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jg 0x4ae1e3
lea eax, [esi + esi]
call fcn.00593a70
mov ecx, esp
lea edx, [ebp - 0x2b0]
push 3
push esi
call fcn.00411629
mov ebx, eax
push ebx
push 0x105
push dword [ebp - 0x2768]
call fcn.005bc370
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.005926d8
leave
ret