Function at 0x41e3d0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d02d6
mov eax, dword fs:[0]
push eax
sub esp, 0x1b0
mov eax, dword [0x4fbf60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x4df030
push 0x84
xor edi, edi
push edi
mov dword [ebp - 0x48], eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
cmp esi, edi
je 0x41e427
push esi
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
jmp 0x41e429
xor eax, eax
cmp eax, edi
je 0x41e44d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push esi
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x34], eax
cmp ebx, edi
je 0x41e44d
cmp eax, edi
ja 0x41e4d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x40f
lea ecx, [ebp - 0x104]
push ecx
mov ebx, str.env.cpp
call fcn.00407320
mov esi, eax
mov dword [ebp - 4], 0
test esi, esi
je 0x41e4ba
lea edi, [esi + 0x10]
test edi, edi
je 0x41e483
lea eax, [esi + 0x20]
jmp 0x41e485
xor eax, eax
push str.ERROR:
push eax
call fcn.00409b50
add esp, 8
test edi, edi
je 0x41e49c
lea eax, [esi + 0x20]
jmp 0x41e49e
xor eax, eax
push str.failed_to_get_blob_for
push eax
call fcn.00409b50
add esp, 8
push 0x84
add esi, 0x20
push esi
call fcn.00421610
lea ecx, [ebp - 0x104]
mov dword [ebp - 4], 0xffffffff
call fcn.004073f0
xor al, al
jmp 0x41e7a3
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
push eax
push ebx
lea edx, [ebp - 0x44]
push edx
mov dword [ebp - 4], 1
call fcn.0042e4a0
test al, al
jne 0x41e582
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x416
lea eax, [ebp - 0x104]
push eax
mov ebx, str.env.cpp
call fcn.00407320
mov esi, eax
mov byte [ebp - 4], 2
test esi, esi
je 0x41e55c
lea edi, [esi + 0x10]
test edi, edi
je 0x41e526
lea eax, [esi + 0x20]
jmp 0x41e528
xor eax, eax
push str.ERROR:
push eax
call fcn.00409b50
add esp, 8
test edi, edi
je 0x41e53f
lea eax, [esi + 0x20]
jmp 0x41e541
xor eax, eax
push str.failed_to_open_zip_with_len:
push eax
call fcn.00409b50
mov ecx, dword [ebp - 0x34]
add esp, 8
push ecx
add esi, 0x20
push esi
call fcn.0040f950
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 1
call fcn.004073f0
lea edx, [ebp - 0x44]
push edx
mov dword [ebp - 4], 0xffffffff
call fcn.0042e2b0
xor al, al
jmp 0x41e7a3
mov edx, dword [ebp - 0x48]
xor eax, eax
mov word [ebp - 0x30], ax
mov ebx, 7
mov eax, edx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], edi
lea esi, [eax + 2]
jmp 0x41e5a0
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x41e5a0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x30]
call fcn.004028fc
sub esp, 8
mov eax, esp
mov dword [ebp - 0x34], esp
lea ecx, [ebp - 0x30]
push ecx
mov byte [ebp - 4], 3
lea edx, [ebp - 0x3c]
mov dword [eax], edi
push edx
lea ecx, [ebp - 0x44]
mov dword [eax + 4], edi
call fcn.0042e660
mov byte [ebp - 4], 5
cmp dword [ebp - 0x1c], 8
jb 0x41e5f0
mov eax, dword [ebp - 0x30]
push eax
call fcn.0047f3b4
add esp, 4
xor ecx, ecx
mov word [ebp - 0x30], cx
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], edi
cmp ecx, edi
jne 0x41e689
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x41d
lea edx, [ebp - 0x104]
push edx
mov ebx, str.env.cpp
call fcn.00407320
mov esi, eax
mov byte [ebp - 4], 6
call fcn.004210f0
mov esi, eax
test esi, esi
je 0x41e669
lea edi, [esi + 0x10]
test edi, edi
je 0x41e641
lea eax, [esi + 0x20]
jmp 0x41e643
xor eax, eax
push str.failed_to_start_unzipping
push eax
call fcn.00409b50
add esp, 8
test edi, edi
je 0x41e65a
lea eax, [esi + 0x20]
jmp 0x41e65c
xor eax, eax
mov ecx, dword [ebp - 0x48]
push ecx
push eax
call fcn.00409b50
add esp, 8
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 5
call fcn.004073f0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.0041ba20
jmp 0x41e56b
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x38]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], esp
cmp eax, edi
je 0x41e6ac
add eax, 4
mov edx, 1
lock xadd dword [eax], edx
push edi
push edi
lea ecx, [ebp - 0x44]
call fcn.0042f750
sub esp, 8
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], edi
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], esp
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebp - 0x38]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], esp
cmp eax, edi
je 0x41e6e9
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
lea ecx, [ebp - 0x44]
call fcn.0042e8d0
test al, al
jne 0x41e758
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x424
lea edx, [ebp - 0x1bc]
push edx
mov ebx, str.env.cpp
call fcn.00407320
mov esi, eax
mov byte [ebp - 4], 7
call fcn.004210f0
mov ecx, str.failed_to_extract
mov esi, eax
call fcn.00421400
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 5
call fcn.004073f0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.0041ba20
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.0042e2b0
xor al, al
jmp 0x41e7a3
mov ecx, dword [ebp - 0x3c]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebp - 0x38]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], esp
cmp eax, edi
je 0x41e77e
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
push 1
call fcn.0042e830
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.0041ba20
lea edx, [ebp - 0x44]
push edx
mov dword [ebp - 4], 0xffffffff
call fcn.0042e2b0
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 - 0x14]
xor ecx, ebp
call fcn.0047f164
mov esp, ebp
pop ebp
ret