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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2770
call fcn.0051d4f0
mov eax, dword [0x5cd9c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x2768], eax
mov eax, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x274c], eax
mov eax, dword [ebp + 0x20]
push edi
mov dword [ebp - 0x2744], ebx
mov dword [ebp - 0x2748], eax
call fcn.00417fed
test al, al
je 0x41991a
xor eax, eax
test ebx, ebx
push 0x108
setne al
xor ebx, ebx
mov dword [ebp - 0x273c], eax
lea eax, [ebp - 0x23f8]
push ebx
push eax
mov dword [ebp - 0x2730], ebx
mov dword [ebp - 0x2754], ebx
mov dword [ebp - 0x275c], ebx
mov dword [ebp - 0x2764], ebx
mov dword [ebp - 0x2750], ebx
mov dword [ebp - 0x2760], ebx
call fcn.00520800
push 0x2cc
lea eax, [ebp - 0x272c]
push ebx
push eax
call fcn.00520800
push 0x2000
lea eax, [ebp - 0x22f0]
push ebx
push eax
call fcn.00520800
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
add esp, 0x30
cmp dword [ebp + 0x10], ebx
je 0x41991a
test esi, esi
je 0x41991a
push ebx
push 0x80
push 3
push ebx
push ebx
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x276c], esi
cmp esi, 0xffffffff
je 0x41991a
push ebx
push esi
mov dword [0x5d1548], esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
je 0x419913
push ebx
push ebx
push ebx
push 2
push ebx
push esi
mov dword [0x5d151c], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x2770], eax
test eax, eax
je 0x419913
push ebx
push ebx
push ebx
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
mov dword [ebp - 0x2738], edi
test edi, edi
je 0x419907
lea eax, [ebp - 0x2750]
mov dword [0x5d1518], edi
push eax
lea eax, [ebp - 0x275c]
push eax
lea eax, [ebp - 0x2754]
push eax
push 6
push edi
call dword [0x5d1544]
test eax, eax
je 0x4198fa
lea eax, [ebp - 0x2750]
push eax
lea eax, [ebp - 0x2730]
push eax
lea eax, [ebp - 0x2754]
push eax
push 4
push edi
call dword [0x5d1544]
test eax, eax
je 0x4198fa
lea eax, [ebp - 0x2750]
push eax
lea eax, [ebp - 0x2760]
push eax
lea eax, [ebp - 0x2754]
push eax
push 3
push edi
call dword [0x5d1544]
test eax, eax
je 0x4198fa
mov edx, dword [ebp - 0x2760]
mov ecx, ebx
cmp dword [edx], ecx
jbe 0x418324
mov eax, dword [ebp - 0x275c]
mov esi, dword [eax]
lea eax, [edx + 4]
cmp esi, dword [eax]
je 0x418317
inc ecx
add eax, 0x30
cmp ecx, dword [edx]
jb 0x418309
jmp 0x418324
imul eax, ecx, 0x30
add eax, 4
add eax, edx
mov dword [0x5d1514], eax
lea eax, [ebp - 0x2750]
push eax
lea eax, [ebp - 0x2764]
push eax
lea eax, [ebp - 0x2754]
push eax
push 5
push edi
call dword [0x5d1544]
test eax, eax
je 0x4198fa
mov eax, dword [ebp - 0x2764]
mov dword [0x5d1520], eax
mov eax, dword [ebp - 0x275c]
push dword [eax + 0xa0]
mov eax, dword [eax + 0xa4]
add eax, edi
push eax
lea eax, [ebp - 0x272c]
push 0x2cc
push eax
call fcn.0040e529
add esp, 0x10
mov edi, ebx
cmp dword [ebp - 0x2744], ebx
jne 0x41843a
mov edx, dword [ebp - 0x2730]
mov esi, ebx
cmp dword [edx], ebx
jbe 0x4183e0
lea ecx, [edx + 4]
mov eax, dword [ecx]
cmp ebx, dword [ecx + 4]
jb 0x4183d6
ja 0x4183ac
cmp dword [ebp - 0x2674], eax
jb 0x4183d6
mov eax, dword [ecx + 8]
mov edi, dword [ecx]
mov dword [ebp - 0x2740], eax
xor eax, eax
add dword [ebp - 0x2740], edi
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x4183de
ja 0x4183d6
mov eax, dword [ebp - 0x2674]
cmp eax, dword [ebp - 0x2740]
jb 0x4183de
inc esi
add ecx, 0x6c
cmp esi, dword [edx]
jb 0x41839b
mov edi, ebx
cmp esi, dword [edx]
je 0x41852a
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
imul ecx, esi, 0x6c
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
mov eax, dword [ebp - 0x2730]
add esp, 0x18
cmp esi, dword [eax]
je 0x41852a
jmp 0x418514
lea eax, [ebp - 0x2758]
mov dword [ebp - 0x2734], ebx
push eax
push 4
lea eax, [ebp - 0x2734]
push eax
push ebx
push dword [ebp - 0x2668]
push dword [ebp - 0x2738]
call fcn.0041992f
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov eax, dword [ebp - 0x2734]
cmp dword [edx], ecx
jbe 0x4184bc
mov esi, dword [ebp - 0x2730]
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x4184a8
ja 0x418488
cmp eax, dword [edx]
jb 0x4184a8
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4184b0
mov eax, dword [ebp - 0x2734]
ja 0x4184a2
cmp eax, esi
jb 0x4184b0
mov esi, dword [ebp - 0x2730]
inc ecx
add edx, 0x6c
cmp ecx, dword [esi]
jb 0x41847d
mov eax, dword [ebp - 0x2734]
mov edx, dword [ebp - 0x2730]
cmp ecx, dword [edx]
je 0x41852a
imul esi, ecx, 0x6c
sub eax, dword [esi + edx + 4]
push eax
push str.0x_08x
push dword [ebp - 0x274c]
call fcn.00419a46
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
mov edi, eax
pop ecx
cmp dword [ebp + 0x14], ebx
je 0x418861
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.00520800
add esp, 0xc
mov dword [ebp - 0x2734], ebx
push ebx
push ebx
push ebx
push fcn.0041992f
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 [0x5d1528]
test eax, eax
je 0x418837
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov dword [ebp - 0x2740], ebx
mov edi, dword [edx]
test edi, edi
je 0x418618
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x41860a
ja 0x4185f2
mov eax, dword [ebp - 0x23f8]
cmp eax, dword [edx]
jb 0x41860a
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x418612
ja 0x41860a
cmp dword [ebp - 0x23f8], esi
jb 0x418612
inc ecx
add edx, 0x6c
cmp ecx, edi
jb 0x4185e1
mov dword [ebp - 0x2740], ecx
cmp ecx, edi
je 0x418813
imul esi, ecx, 0x6c
mov dword [ebp - 0x274c], esi
cmp word [ebp - 0x22f0], bx
jne 0x4186df
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
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.00403bd1
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x2c
jmp 0x418813
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
push 0x55decc
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
mov ecx, dword [ebp - 0x2730]
add esp, 0x2c
mov eax, dword [ebp - 0x2740]
cmp eax, dword [ecx]
je 0x418813
cmp dword [ebp - 0x273c], ebx
je 0x418813
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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
mov eax, dword [ebp - 0x2730]
add esp, 0x18
mov ecx, dword [ebp - 0x2738]
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 - 0x2744]
call fcn.0053030e
add esp, 0xc
mov dword [ebp - 0x273c], ebx
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x418837
mov esi, dword [ebp - 0x2734]
inc esi
mov dword [ebp - 0x2734], esi
cmp esi, 5
jl 0x418599
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.00524c40
inc eax
pop ecx
cmp eax, 0x3fffffff
jle 0x4197e7
mov esi, ebx
jmp 0x419805
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
push 0x55dee8
push edi
call esi
test eax, eax
je 0x418ec2
push 0x55defc
push edi
call esi
test eax, eax
je 0x418ec2
push str.ntdll
push edi
call esi
test eax, eax
je 0x418ec2
push str.kernelbase
push edi
call esi
test eax, eax
je 0x418ec2
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.00520800
mov edi, dword [ebp - 0x2730]
add esp, 0xc
mov esi, ebx
cmp dword [edi], ebx
jbe 0x418947
lea ecx, [edi + 4]
cmp ebx, dword [ecx + 4]
jb 0x41893f
ja 0x418927
mov eax, dword [ebp - 0x2674]
cmp eax, dword [ecx]
jb 0x41893f
mov edx, dword [ecx + 8]
xor eax, eax
add edx, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x418947
ja 0x41893f
cmp dword [ebp - 0x2674], edx
jb 0x418947
inc esi
add ecx, 0x6c
cmp esi, dword [edi]
jb 0x418916
cmp esi, dword [edi]
je 0x418a81
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
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.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
push 0x55df7c
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov edi, dword [ebp - 0x2744]
add esp, 0x38
mov eax, dword [ebp - 0x273c]
mov dword [ebp - 0x273c], eax
test edi, edi
je 0x418a81
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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
mov eax, dword [ebp - 0x2730]
add esp, 0x18
mov ecx, dword [ebp - 0x2738]
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.0053030e
add esp, 0xc
mov dword [ebp - 0x273c], ebx
lea eax, [ebp - 0x2758]
mov dword [ebp - 0x2740], ebx
push eax
push 4
lea eax, [ebp - 0x2740]
push eax
push ebx
push dword [ebp - 0x2668]
push dword [ebp - 0x2738]
call fcn.0041992f
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov edi, dword [edx]
test edi, edi
je 0x418aeb
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x418ae3
ja 0x418acb
mov eax, dword [ebp - 0x2740]
cmp eax, dword [edx]
jb 0x418ae3
mov esi, dword [edx + 8]
xor eax, eax
add esi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x418aeb
ja 0x418ae3
cmp dword [ebp - 0x2740], esi
jb 0x418aeb
inc ecx
add edx, 0x6c
cmp ecx, edi
jb 0x418aba
cmp ecx, edi
je 0x418c98
push 0x208
imul esi, ecx, 0x6c
lea eax, [ebp - 0x270]
push ebx
push eax
cmp word [ebp - 0x22f0], bx
jne 0x418bc2
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [esi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
mov edi, 0x1000
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
push 0x55df7c
lea eax, [ebp - 0x22f0]
push edi
push eax
call fcn.00530299
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 - 0x2740]
sub ecx, dword [esi + eax + 4]
lea eax, [ebp - 0x2c]
push ecx
push str._08x
push 0x14
push eax
call fcn.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov edi, dword [ebp - 0x2738]
add esp, 0x38
jmp 0x418c2f
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov edi, dword [ebp - 0x2738]
mov eax, dword [esi + eax + 0x18]
add eax, 4
add eax, edi
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
push 0x55decc
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x10
cmp dword [ebp - 0x273c], ebx
je 0x418c98
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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
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 - 0x2744]
call fcn.0053030e
mov dword [ebp - 0x273c], ebx
add esp, 0xc
push ebx
push ebx
push ebx
push fcn.0041992f
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 [0x5d1528]
test eax, eax
je 0x418837
mov eax, dword [ebp - 0x23e8]
or eax, dword [ebp - 0x23e4]
je 0x418837
mov ecx, dword [ebp - 0x2730]
mov esi, ebx
mov edi, dword [ecx]
test edi, edi
je 0x418d1d
add ecx, 4
mov eax, dword [ecx]
cmp ebx, dword [ecx + 4]
jb 0x418d15
ja 0x418cfd
cmp dword [ebp - 0x23e8], eax
jb 0x418d15
mov edx, dword [ecx + 8]
xor eax, eax
add edx, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
jb 0x418d1d
ja 0x418d15
cmp dword [ebp - 0x23e8], edx
jb 0x418d1d
inc esi
add ecx, 0x6c
cmp esi, edi
jb 0x418cec
cmp esi, edi
je 0x418c98
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 0x418df9
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
mov esi, 0x1000
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.00530299
push 0x55df7c
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.00530299
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push esi
push eax
call fcn.00530299
add esp, 0x38
jmp 0x418c98
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
push 0x55decc
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov eax, dword [ebp - 0x2730]
add esp, 0x10
cmp esi, dword [eax]
je 0x418c98
cmp dword [ebp - 0x273c], ebx
je 0x418c98
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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
jmp 0x418c74
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 - 0x2740], ebx
mov dword [ebp - 0x23f4], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23d4], ebx
call fcn.00520800
mov ecx, dword [ebp - 0x2730]
add esp, 0xc
mov edx, ebx
mov eax, dword [ecx]
mov dword [ebp - 0x2734], eax
test eax, eax
je 0x418f78
mov esi, dword [ebp - 0x2674]
add ecx, 4
cmp ebx, dword [ecx + 4]
jb 0x418f6a
ja 0x418f50
cmp esi, dword [ecx]
jb 0x418f6a
mov edi, dword [ecx + 8]
xor eax, eax
add edi, dword [ecx]
adc eax, dword [ecx + 4]
cmp ebx, eax
mov eax, dword [ebp - 0x2734]
jb 0x418f72
ja 0x418f6a
cmp esi, edi
jb 0x418f72
inc edx
add ecx, 0x6c
cmp edx, eax
jb 0x418f45
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
cmp edx, eax
je 0x41915f
imul edi, edx, 0x6c
lea eax, [ebp - 0x270]
push 0x208
push ebx
push eax
mov dword [ebp - 0x2734], edi
cmp word [ebp - 0x22f0], bx
jne 0x419045
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov edx, dword [ebp - 0x2734]
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x2c
jmp 0x41915f
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
push 0x55decc
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov edi, dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea eax, [ebp - 0x270]
add esp, 0x24
push eax
call edi
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x10
lea eax, [ebp - 0x270]
push str.kernel32.dll
push eax
call edi
push eax
call esi
test eax, eax
je 0x41915f
push str.user32.dll
lea eax, [ebp - 0x270]
push eax
call edi
push eax
call esi
test eax, eax
je 0x41915f
push str.kernelbase.dll
lea eax, [ebp - 0x270]
push eax
call edi
push eax
call esi
test eax, eax
je 0x41915f
push str.ntdll.dll
lea eax, [ebp - 0x270]
push eax
call edi
push eax
call esi
test eax, eax
je 0x41915f
mov edx, dword [ebp - 0x2734]
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x1c
mov dword [ebp - 0x2740], 1
lea eax, [ebp - 0x2758]
mov dword [ebp - 0x274c], ebx
push eax
push 4
lea eax, [ebp - 0x274c]
push eax
push ebx
push dword [ebp - 0x2668]
push dword [ebp - 0x2738]
call fcn.0041992f
mov ecx, dword [ebp - 0x2730]
mov edi, ebx
mov dword [ebp - 0x2734], edi
cmp dword [ecx], ebx
jbe 0x4191eb
mov esi, dword [ebp - 0x274c]
lea edx, [ecx + 4]
cmp ebx, dword [edx + 4]
jb 0x4191cf
ja 0x4191ad
cmp esi, dword [edx]
jb 0x4191cf
mov edi, dword [edx + 8]
xor eax, eax
add edi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
jb 0x4191df
ja 0x4191c9
cmp esi, edi
mov edi, dword [ebp - 0x2734]
jb 0x4191e5
jmp 0x4191cf
mov edi, dword [ebp - 0x2734]
inc edi
add edx, 0x6c
mov dword [ebp - 0x2734], edi
cmp edi, dword [ecx]
jb 0x4191a2
jmp 0x4191e5
mov edi, dword [ebp - 0x2734]
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
cmp edi, dword [ecx]
je 0x419506
cmp word [ebp - 0x22f0], bx
jne 0x41932e
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
imul ecx, edi, 0x6c
mov dword [ebp - 0x2734], ecx
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
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 - 0x2734]
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov eax, dword [ebp - 0x273c]
add esp, 0x2c
mov dword [ebp - 0x273c], eax
cmp dword [ebp - 0x2744], ebx
je 0x419506
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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
mov eax, dword [ebp - 0x2730]
add esp, 0x18
mov ecx, dword [ebp - 0x2738]
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 - 0x2744]
call fcn.0053030e
jmp 0x4194fd
cmp dword [ebp - 0x2740], ebx
jne 0x419488
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.00520800
mov eax, dword [ebp - 0x2730]
imul ecx, edi, 0x6c
mov dword [ebp - 0x2758], ecx
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
push 0x55decc
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x10
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 0x419482
push str.user32.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x419482
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 0x419482
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 0x419482
mov edx, dword [ebp - 0x2758]
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
mov edi, dword [ebp - 0x2734]
add esp, 0x1c
mov dword [ebp - 0x2740], 1
mov ecx, dword [ebp - 0x2730]
mov eax, dword [ebp - 0x273c]
mov dword [ebp - 0x273c], eax
cmp dword [ebp - 0x2744], ebx
je 0x419506
imul esi, edi, 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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
mov eax, dword [ebp - 0x2730]
mov eax, dword [esi + eax + 0x18]
mov ecx, dword [ebp - 0x2738]
add esp, 0x18
add ecx, 4
add eax, ecx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x104
push dword [ebp - 0x2744]
call fcn.0053030e
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
add esp, 0xc
mov dword [ebp - 0x273c], ebx
push ebx
push ebx
push ebx
push fcn.0041992f
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 [0x5d1528]
test eax, eax
je 0x418837
mov edi, dword [ebp - 0x23e8]
mov eax, edi
or eax, dword [ebp - 0x23e4]
je 0x418837
mov edx, dword [ebp - 0x2730]
mov ecx, ebx
mov eax, dword [edx]
mov dword [ebp - 0x2734], eax
test eax, eax
je 0x419599
add edx, 4
cmp ebx, dword [edx + 4]
jb 0x419591
ja 0x41956d
cmp edi, dword [edx]
jb 0x419591
mov edi, dword [edx + 8]
xor eax, eax
add edi, dword [edx]
adc eax, dword [edx + 4]
cmp ebx, eax
mov eax, dword [ebp - 0x2734]
jb 0x419599
ja 0x41958b
cmp dword [ebp - 0x23e8], edi
jb 0x419599
mov edi, dword [ebp - 0x23e8]
inc ecx
add edx, 0x6c
cmp ecx, eax
jb 0x419562
cmp ecx, eax
je 0x419506
imul edi, ecx, 0x6c
lea eax, [ebp - 0x270]
push 0x208
push ebx
push eax
mov dword [ebp - 0x2734], edi
cmp word [ebp - 0x22f0], bx
jne 0x419666
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
add esp, 0x18
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
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 - 0x2734]
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.00403bd1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x2c
jmp 0x41979e
call fcn.00520800
mov eax, dword [ebp - 0x2730]
mov ecx, dword [ebp - 0x2738]
add ecx, 4
mov eax, dword [edi + eax + 0x18]
add eax, ecx
push eax
lea eax, [ebp - 0x270]
push 0x104
push eax
call fcn.0053030e
push 0x55decc
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x24
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.00418107
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x10
cmp dword [ebp - 0x2740], ebx
jne 0x41979e
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 0x41979e
push str.user32.dll
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call esi
test eax, eax
je 0x41979e
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 0x41979e
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 0x41979e
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 - 0x2734]
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.00403bd1
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x22f0]
push 0x1000
push eax
call fcn.00530299
add esp, 0x1c
mov dword [ebp - 0x2740], 1
cmp dword [ebp - 0x273c], ebx
je 0x419506
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 0x55ded0
push dword [ebp - 0x2748]
call fcn.00419a46
mov eax, dword [ebp - 0x2730]
mov eax, dword [edi + eax + 0x18]
jmp 0x4194d1
lea esi, [eax + eax]
mov eax, esi
call fcn.0051dc40
mov eax, esp
lea ecx, [ebp - 0x22f0]
push 3
push esi
push ecx
push eax
call fcn.00417f5c
mov esi, eax
push esi
call fcn.00524dd0
inc eax
push eax
push esi
call fcn.005305b4
lea eax, [ebp - 0x2460]
push ebx
push eax
call fcn.00427af4
push esi
call fcn.00524dd0
push eax
lea eax, [ebp - 0x2460]
push esi
push eax
call fcn.00427b32
lea eax, [ebp - 0x2460]
push eax
call fcn.00427a38
push 0x10
lea eax, [ebp - 0x2408]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0051fd00
push 0x40
pop edi
push edi
lea eax, [ebp - 0x2b0]
push ebx
push eax
call fcn.00520800
add esp, 0x40
lea eax, [ebp - 0x2f0]
push edi
push ebx
push eax
call fcn.00520800
add esp, 0xc
mov esi, ebx
movzx eax, byte [ebp + esi - 0x40]
push eax
push str._02x
lea eax, [ebp - 0x2f0]
push edi
push eax
call fcn.0040a744
lea eax, [ebp - 0x2f0]
push eax
lea eax, [ebp - 0x2b0]
push edi
push eax
call fcn.00530372
add esp, 0x1c
inc esi
cmp esi, 0x10
jl 0x419879
lea eax, [ebp - 0x2b0]
push eax
call fcn.00524dd0
pop ecx
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jg 0x4198e2
lea eax, [esi + esi]
call fcn.0051dc40
mov eax, esp
lea ecx, [ebp - 0x2b0]
push 3
push esi
push ecx
push eax
call fcn.0040b178
mov ebx, eax
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x2768]
call fcn.0053030e
mov edi, dword [ebp - 0x2738]
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, dword [ebp - 0x276c]
push dword [ebp - 0x2770]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
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.0051d360
leave
ret