Function at 0x41e8df
Capabilities:
Extract resource via kernel32 functions
Get common file path
Set current directory
Write file on windows

Disassembly:
push ebp
sub esp, 0x104
lea ebp, [esp - 4]
mov eax, dword [0x58c584]
xor eax, ebp
mov dword [ebp + 0x104], eax
push 0x64
mov eax, 0x53406b
call fcn.0050a887
xor edi, edi
mov dword [ebp - 0x10], ecx
cmp dword [ecx + 0x24], edi
je 0x41e914
mov al, 1
jmp 0x41eb0e
mov dword [ebp - 0x1c], edi
call fcn.004f7150
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x38]
push eax
call fcn.0043c288
pop ecx
push edi
push eax
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], edi
call fcn.0040ab1f
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 1
call fcn.0041e479
pop ecx
pop ecx
mov bl, al
neg bl
push edi
sbb bl, bl
push 1
lea ecx, [ebp - 0x54]
inc bl
mov byte [ebp - 4], 0
call fcn.0040a9d6
or dword [ebp - 4], 0xffffffff
push edi
push 1
lea ecx, [ebp - 0x38]
call fcn.004034b0
test bl, bl
je 0x41e97a
xor al, al
jmp 0x41eb0e
push 0x73
lea eax, [ebp - 0x38]
pop esi
push eax
call fcn.0043c665
pop ecx
cmp dword [eax + 0x18], 0x10
mov dword [ebp - 4], 2
jb 0x41e999
mov eax, dword [eax + 4]
jmp 0x41e99c
add eax, 4
push eax
call fcn.0050aae5
pop ecx
cmp eax, 0x16
push edi
setge bl
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x38]
call fcn.004034b0
test bl, bl
je 0x41e9bf
push 0x74
pop esi
push 0x54a27c
push esi
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov ebx, eax
cmp ebx, edi
je 0x41eb03
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
cmp esi, edi
je 0x41eb03
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x14], eax
cmp eax, edi
jbe 0x41eb03
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
cmp esi, edi
je 0x41eb03
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0041e817
cmp dword [eax + 0x18], 0x10
mov dword [ebp - 4], 3
jb 0x41ea2a
mov eax, dword [eax + 4]
jmp 0x41ea2d
add eax, 4
push 0x54b5d0
push eax
call fcn.0050c190
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
push edi
push 1
lea ecx, [ebp - 0x38]
mov ebx, eax
call fcn.004034b0
cmp ebx, edi
je 0x41eb03
push ebx
push 1
push dword [ebp - 0x14]
push esi
call fcn.0050b65e
push ebx
call fcn.0050b919
mov esi, 0x104
push esi
lea eax, [ebp]
push edi
push eax
call fcn.0050aaf0
add esp, 0x20
lea eax, [ebp]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov esi, dword [ebp - 0x10]
lea eax, [ebp]
push eax
lea ecx, [esi + 0x28]
call fcn.004033ab
lea eax, [ebp - 0x38]
push eax
call fcn.0043c53a
pop ecx
cmp dword [eax + 0x18], 0x10
mov dword [ebp - 4], 4
jb 0x41eaae
mov eax, dword [eax + 4]
jmp 0x41eab1
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
or dword [ebp - 4], 0xffffffff
push edi
push 1
lea ecx, [ebp - 0x38]
call fcn.004034b0
lea eax, [ebp - 0x70]
push eax
mov ecx, esi
call fcn.0041e817
cmp dword [eax + 0x18], 0x10
mov dword [ebp - 4], 5
jb 0x41eae4
mov eax, dword [eax + 4]
jmp 0x41eae7
add eax, 4
push 8
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
or dword [ebp - 4], 0xffffffff
push edi
push 1
lea ecx, [ebp - 0x70]
mov dword [esi + 0x24], eax
call fcn.004034b0
mov ecx, dword [ebp - 0x10]
xor eax, eax
cmp dword [ecx + 0x24], edi
setne al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x104]
xor ecx, ebp
call fcn.0050a878
add ebp, 0x108
leave
ret