Function at 0x41ae60
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b1966
mov eax, dword fs:[0]
push eax
sub esp, 0x1ac
mov eax, dword [0x4d8c20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movzx ecx, word [ebp + 8]
mov eax, dword [ebp + 0xc]
push 0x4b9f00
push ecx
xor ebx, ebx
push ebx
mov dword [ebp - 0x44], eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
cmp esi, ebx
je 0x41aeb7
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
jmp 0x41aeb9
xor eax, eax
cmp eax, ebx
je 0x41aed9
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push esi
push ebx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x30], eax
cmp edi, ebx
je 0x41aed9
cmp eax, ebx
ja 0x41af4e
push 0x3c8
push str.env.cpp
lea esi, [ebp - 0x100]
call fcn.00414f70
mov esi, eax
mov dword [ebp - 4], ebx
cmp esi, ebx
je 0x41af35
lea edi, [esi + 0x10]
cmp edi, ebx
je 0x41af03
lea eax, [esi + 0x20]
jmp 0x41af05
xor eax, eax
push str.ERROR:
push eax
call fcn.00407256
add esp, 8
cmp edi, ebx
je 0x41af1a
lea ebx, [esi + 0x20]
push str.failed_to_get_blob_for
push ebx
call fcn.00407256
mov edx, dword [ebp + 8]
add esp, 8
push edx
add esi, 0x20
push esi
call fcn.0041e5b0
lea ecx, [ebp - 0x100]
mov dword [ebp - 4], 0xffffffff
call fcn.00415130
xor al, al
jmp 0x41b20f
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
push eax
push edi
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 4], 1
call fcn.00431c10
test al, al
jne 0x41aff1
push 0x3cf
push str.env.cpp
lea esi, [ebp - 0x100]
call fcn.00414f70
mov esi, eax
mov byte [ebp - 4], 2
cmp esi, ebx
je 0x41afcb
lea edi, [esi + 0x10]
cmp edi, ebx
je 0x41af99
lea eax, [esi + 0x20]
jmp 0x41af9b
xor eax, eax
push str.ERROR:
push eax
call fcn.00407256
add esp, 8
cmp edi, ebx
je 0x41afb0
lea ebx, [esi + 0x20]
push str.failed_to_open_zip_with_len:
push ebx
call fcn.00407256
mov ecx, dword [ebp - 0x30]
add esp, 8
push ecx
add esi, 0x20
push esi
call fcn.0041e850
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 1
call fcn.00415130
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 4], 0xffffffff
call fcn.00431a10
xor al, al
jmp 0x41b20f
mov esi, dword [ebp - 0x44]
xor eax, eax
mov word [ebp - 0x2c], ax
mov edi, 7
mov eax, esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41b010
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00404447
sub esp, 8
mov eax, esp
mov dword [ebp - 0x30], esp
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 3
lea edx, [ebp - 0x38]
mov dword [eax], ebx
push edx
lea ecx, [ebp - 0x40]
mov dword [eax + 4], ebx
call fcn.00431dd0
mov byte [ebp - 4], 5
cmp dword [ebp - 0x18], 8
jb 0x41b060
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00475dcb
add esp, 4
xor ecx, ecx
mov word [ebp - 0x2c], cx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
cmp ecx, ebx
jne 0x41b111
push 0x3d6
push str.env.cpp
lea esi, [ebp - 0x100]
call fcn.00414f70
mov edi, eax
mov byte [ebp - 4], 6
cmp edi, ebx
je 0x41b0df
lea esi, [edi + 0x10]
cmp esi, ebx
je 0x41b0a2
lea eax, [edi + 0x20]
jmp 0x41b0a4
xor eax, eax
push str.ERROR:
push eax
call fcn.00407256
add esp, 8
cmp esi, ebx
je 0x41b0bb
lea eax, [edi + 0x20]
jmp 0x41b0bd
xor eax, eax
push str.failed_to_start_unzipping
push eax
call fcn.00407256
add esp, 8
cmp esi, ebx
je 0x41b0d2
lea ebx, [edi + 0x20]
mov edx, dword [ebp - 0x44]
push edx
push ebx
call fcn.00407256
add esp, 8
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 5
call fcn.00415130
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 1
call fcn.00422dc0
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.00431a10
xor al, al
jmp 0x41b20f
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x34]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], esp
cmp eax, ebx
je 0x41b134
add eax, 4
mov edx, 1
lock xadd dword [eax], edx
push ebx
push ebx
lea ecx, [ebp - 0x40]
call fcn.00432ea0
sub esp, 8
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x30], esp
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebp - 0x34]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], esp
cmp eax, ebx
je 0x41b171
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
lea ecx, [ebp - 0x40]
call fcn.00432040
cmp al, bl
jne 0x41b1c4
push 0x3dd
push str.env.cpp
lea esi, [ebp - 0x1b8]
call fcn.00414f70
mov esi, eax
mov byte [ebp - 4], 7
call fcn.00405810
cmp eax, ebx
je 0x41b1b9
lea edx, [eax + 0x10]
test edx, edx
je 0x41b1ab
lea ebx, [eax + 0x20]
push str.failed_to_extract
push ebx
call fcn.00407256
add esp, 8
lea ecx, [ebp - 0x1b8]
jmp 0x41b0e5
mov ecx, dword [ebp - 0x38]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebp - 0x34]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], esp
cmp eax, ebx
je 0x41b1ea
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
push 1
call fcn.00431fa0
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 1
call fcn.00422dc0
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 4], 0xffffffff
call fcn.00431a10
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004751dc
mov esp, ebp
pop ebp
ret