Function at 0x10015d40
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x1005dba2
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10071430]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8c]
xor edi, edi
cmp eax, edi
je 0x10016057
push edi
push 0x8000000
push 3
push edi
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x8c], eax
cmp eax, 0xffffffff
je 0x10016057
mov eax, dword [esp + 0x88]
push edi
push 2
push edi
push eax
call fcn.1005be40
mov esi, eax
add esp, 0x10
cmp esi, edi
je 0x10016057
lea ecx, [esp + 0x40]
push ecx
call fcn.10001300
lea edx, [esp + 0x40]
push edx
push 0x10015a10
push 0xe
mov dword [esp + 0x8c], edi
mov ebp, dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
push esi
call ebp
lea eax, [esp + 0x28]
push eax
call fcn.10001300
lea ecx, [esp + 0x28]
push ecx
push 0x10015a10
push 3
push esi
mov byte [esp + 0x90], 1
call ebp
lea edx, [esp + 0x58]
push edx
call fcn.10016ba0
push 0x409
push 0x80
push 0xe
push esi
mov byte [esp + 0x90], 2
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
cmp eax, edi
je 0x10015e81
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebp, eax
xor eax, eax
cmp ax, word [ebp + 4]
je 0x10015e81
jmp 0x10015e50
movzx eax, di
lea ecx, [eax*8]
sub ecx, eax
movzx edx, word [ebp + ecx*2 + 0x12]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
lea ebx, [esp + 0x60]
mov dword [esp + 0x20], edx
call fcn.10016460
inc edi
cmp di, word [ebp + 4]
jne 0x10015e50
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, dword [esp + 0x88]
push edi
push edx
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov ebx, eax
cmp ebx, edi
jne 0x10015ef4
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x84], 1
call fcn.10016070
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x10015ec0
push eax
call fcn.10047eaf
add esp, 4
mov ecx, dword [esp + 0x28]
push ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
call fcn.10047eaf
mov eax, dword [esp + 0x50]
add esp, 4
cmp eax, edi
je 0x10015eea
push eax
call fcn.10047eaf
add esp, 4
mov edx, dword [esp + 0x40]
push edx
jmp 0x10016043
mov eax, dword [esp + 0x8c]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
push ebp
call fcn.10047ea4
mov esi, eax
add esp, 4
mov dword [esp + 0x88], esi
mov byte [esp + 0x80], 3
mov dword [esp + 0x14], edi
cmp esi, edi
je 0x10015f3d
mov edx, dword [esp + 0x8c]
push edi
lea ecx, [esp + 0x18]
push ecx
push ebp
push esi
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebp, edi
je 0x10015fdf
cmp ebp, dword [esp + 0x14]
jne 0x10015fdf
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x2c]
push edx
push ebx
push esi
call fcn.10015a40
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
push esi
test eax, eax
jne 0x10015fac
call fcn.1004852e
add esp, 4
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x84], 1
call fcn.10016070
lea esi, [esp + 0x28]
call fcn.100163c0
lea esi, [esp + 0x40]
call fcn.100163c0
jmp 0x10016057
call fcn.1004852e
add esp, 4
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0x84], 1
call fcn.10016070
lea esi, [esp + 0x28]
call fcn.100163c0
lea esi, [esp + 0x40]
call fcn.100163c0
mov eax, 1
jmp 0x10016059
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
push esi
call fcn.1004852e
add esp, 4
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x84], 1
call fcn.10016070
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x10016014
push eax
call fcn.10047eaf
add esp, 4
mov eax, dword [esp + 0x28]
push eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
call fcn.10047eaf
mov eax, dword [esp + 0x50]
add esp, 4
cmp eax, edi
je 0x1001603e
push eax
call fcn.10047eaf
add esp, 4
mov ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
call fcn.10047eaf
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret 8