Function at 0x415dd0
Capabilities:
Extract resource via kernel32 functions
Get file version info

Disassembly:
push 0xffffffffffffffff
push 0x4e7f2c
mov eax, dword fs:[0]
push eax
mov eax, 0x2240
call fcn.004d8ec0
mov eax, dword [0x512054]
xor eax, esp
mov dword [esp + 0x223c], eax
push ebp
push esi
push edi
mov eax, dword [0x512054]
xor eax, esp
push eax
lea eax, [esp + 0x2250]
mov dword fs:[0], eax
push 0x208
xor ebp, ebp
push ebp
push 0x51a384
mov dword [0x51a380], 0x4f67b4
call fcn.004cc620
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
add esp, 0xc
push 0x104
push 0x51a384
push ebp
call esi
lea eax, [esp + 0x14]
push eax
mov ecx, 0x4f66a0
call fcn.00406bd0
mov dword [esp + 0x2258], ebp
mov dword [esp + 0x1c], ebp
push 0x10
mov byte [esp + 0x225c], 1
mov ecx, dword [0x5195d0]
push 1
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [esp + 0x20], eax
cmp eax, ebp
je 0x415e95
mov edx, dword [0x5195d0]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [esp + 0x1c], eax
cmp eax, ebp
jne 0x415e95
mov dword [esp + 0x20], ebp
push 0x1fff
lea eax, [esp + 0x251]
push ebp
push eax
mov byte [esp + 0x258], 0
call fcn.004cc620
push 0x206
lea edx, [esp + 0x56]
xor ecx, ecx
push ebp
push edx
mov word [esp + 0x5c], cx
call fcn.004cc620
add esp, 0x18
push 0x104
lea eax, [esp + 0x48]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call esi
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x48]
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeW
cmp eax, ebp
je 0x415f59
cmp eax, 0x1fff
ja 0x415f59
lea ecx, [esp + 0x24c]
push ecx
push eax
push ebp
lea edx, [esp + 0x50]
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x415f59
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0x4f66b8
lea edx, [esp + 0x258]
push edx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x415f59
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0xc]
movzx edx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
push edx
movzx edx, word [eax + 0xa]
push ecx
push edx
push 0x4f66bc
lea edi, [esp + 0x28]
call fcn.00406e20
add esp, 0x14
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x4f66d4
push 0x51a384
call esi
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov edx, dword [0x5195ac]
mov eax, dword [edx + 0xc]
mov ecx, 0x5195ac
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2258], 2
call fcn.00415ca0
mov byte [esp + 0x2258], 3
movzx ecx, word [esp + 0x38]
movzx edx, word [esp + 0x36]
mov eax, dword [eax]
push ecx
movzx ecx, word [esp + 0x38]
push edx
movzx edx, word [esp + 0x3a]
push ecx
movzx ecx, word [esp + 0x3a]
push edx
mov edx, dword [esp + 0x24]
push ecx
push edx
push eax
push str._s_dump__s__02d_02d_02d_02d_02d.dmp
lea edi, [esp + 0x38]
call fcn.00406e20
mov byte [esp + 0x2278], 2
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
add esp, 0x20
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416005
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
push edi
push 0x51a384
call esi
push str.dbghelp.dll
mov dword [0x51af94], ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x51af98], eax
mov dword [0x51b350], ebp
cmp eax, ebp
je 0x416042
push str.MiniDumpWriteDump
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x51b350], eax
mov eax, 0x51a58c
mov esi, 0x4f667c
mov edx, 0x104
sub esi, eax
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x416073
movzx ecx, word [esi + eax]
cmp cx, bp
je 0x416073
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x416053
jmp 0x416077
cmp edx, ebp
jne 0x41607a
sub eax, 2
xor edx, edx
mov word [eax], dx
mov eax, 0x51a794
mov esi, str._WL
mov edx, 0x400
sub esi, eax
lea ecx, [edx + 0x7ffffbfe]
test ecx, ecx
je 0x4160b0
movzx ecx, word [esi + eax]
cmp cx, bp
je 0x4160b0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x416090
jmp 0x4160b4
cmp edx, ebp
jne 0x4160b7
sub eax, 2
xor edx, edx
mov word [eax], dx
lea eax, [edi - 0x10]
mov byte [esp + 0x2258], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4160e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4160ef
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [esp + 0x2258], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41611a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x51a380
mov ecx, dword [esp + 0x2250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x223c]
xor ecx, esp
call fcn.004c961b
add esp, 0x224c
ret