Function at 0x43bd90
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows

Disassembly:
push 0x41c
mov eax, 0x512df8
call fcn.004d18f8
mov dword [ebp - 0x1f4], edx
mov esi, dword [ebp + 0xc]
xor ebx, ebx
test ecx, ecx
jne 0x43bfe1
mov edi, 0x84
lea eax, [ebp - 0xd0]
push edi
push ebx
push eax
call fcn.004e8520
add esp, 0xc
lea ecx, [ebp - 0xd0]
push 0x558010
call fcn.0041a4d0
mov dword [ebp - 4], ebx
mov eax, dword [0x557f80]
cmp word [eax], bx
jne 0x43be77
cmp dword [ebp + 8], ebx
je 0x43bdfc
push dword [ebp + 8]
lea ecx, [ebp - 0xd0]
call fcn.0041a533
push ebx
push 0x80
push 3
push ebx
push 1
push closesocket
push dword [ebp - 0xd0]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x43be33
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.0041a4f5
jmp 0x43c058
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x43be1f
and dword [ebp - 0x14], 0
push esi
call fcn.004d09be
pop ecx
push 0
mov edi, eax
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x14], esi
je 0x43bfd0
push edi
call fcn.004d04e6
pop ecx
jmp 0x43be1f
push eax
lea ecx, [ebp - 0xd0]
call fcn.0041a533
push edi
lea eax, [ebp - 0x1e0]
push ebx
push eax
call fcn.004e8520
add esp, 0xc
lea ecx, [ebp - 0x1e0]
push 0x557ef8
call fcn.0041a4d0
mov byte [ebp - 4], 1
cmp byte [0x557ec0], 0
je 0x43beb9
mov ebx, dword [0x55ca90]
jmp 0x43bee5
mov ecx, dword [ebp - 0x1e0]
call fcn.00413539
mov ecx, dword [ebp - 0xd0]
mov esi, eax
push esi
push 2
xor edx, edx
call fcn.0044700f
mov ebx, eax
pop ecx
pop ecx
test esi, esi
je 0x43bee5
push esi
call fcn.004d04e6
pop ecx
test ebx, ebx
jne 0x43bef9
lea ecx, [ebp - 0x1e0]
call fcn.0041a4f5
jmp 0x43be1f
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x158]
push edi
push 0
push eax
call fcn.004e8520
add esp, 0xc
lea ecx, [ebp - 0x158]
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0041a4ac
push 0x53c200
push 0x53b2d8
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 2
call fcn.0041a90b
mov edx, dword [ebp - 0x158]
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, ebx
call fcn.004470d6
add esp, 0xc
test eax, eax
je 0x43bf65
lea ecx, [ebp - 0x158]
call fcn.0041a4f5
jmp 0x43bee9
mov esi, dword [ebp - 0x1fc]
test esi, esi
je 0x43bf58
push esi
call fcn.004d09be
mov edx, dword [ebp - 0x14]
mov edi, eax
push esi
push edi
mov ecx, ebx
call fcn.00447109
add esp, 0xc
test eax, eax
je 0x43bfaa
cmp eax, 0x600
je 0x43bfaa
push edi
call fcn.004d04e6
cmp byte [0x557ec0], 0
pop ecx
jne 0x43bf58
mov ecx, ebx
call fcn.0044713a
jmp 0x43bf58
cmp byte [0x557ec0], 0
jne 0x43bfba
mov ecx, ebx
call fcn.0044713a
lea ecx, [ebp - 0x158]
call fcn.0041a4f5
lea ecx, [ebp - 0x1e0]
call fcn.0041a4f5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.0041a4f5
jmp 0x43c054
test esi, esi
jne 0x43bff4
mov esi, dword [0x55ca9c]
test esi, esi
cmove esi, dword [0x55ca98]
push ecx
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x43c058
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x1ec], eax
push ebx
test eax, eax
jne 0x43c020
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x43c058
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
test esi, esi
je 0x43c058
push esi
call fcn.004d09be
pop ecx
push esi
push dword [ebp - 0x1ec]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
push edi
call fcn.004e8680
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
test edi, edi
jne 0x43c0ca
push 0
push 0x80
push 3
push 0
push 1
push closesocket
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x43c2cb
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x43c2cb
and dword [ebp - 0x18], 0
push esi
call fcn.004d09be
pop ecx
push 0
mov edi, eax
lea eax, [ebp - 0x18]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x18], esi
je 0x43c0c2
push edi
call fcn.004d04e6
pop ecx
xor edi, edi
test edi, edi
je 0x43c2cb
push ecx
lea eax, [ebp - 0x1f8]
mov edx, esi
push eax
lea eax, [ebp - 0x1ec]
mov ecx, edi
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00431c40
push edi
mov ebx, eax
call fcn.004d04e6
add esp, 0x14
test ebx, ebx
je 0x43c2cb
mov eax, dword [ebp - 0x1ec]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x1f0]
neg eax
and dword [ebp - 0x1c], 0
mov edi, ecx
imul edi, dword [ebp - 0x1ec]
and dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], eax
xor eax, eax
inc eax
mov dword [ebp - 0x40], ecx
push 0x20
mov word [ebp - 0x38], ax
xor ecx, ecx
pop eax
mov word [ebp - 0x36], ax
mov eax, edi
push ecx
shl eax, 2
push ecx
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x1e4]
push eax
push ecx
lea eax, [ebp - 0x44]
movlpd qword [ebp - 0x2c], xmm0
push eax
push ecx
movlpd qword [ebp - 0x24], xmm0
mov dword [ebp - 0x44], 0x28
mov byte [ebp - 0x1e5], cl
mov dword [ebp - 0x1e4], ecx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0x1f8], eax
test eax, eax
je 0x43c2cb
xor esi, esi
test edi, edi
jle 0x43c27d
mov edx, 0xff
mov eax, dword [ebp - 0x1e4]
mov cl, byte [ebx + esi*4 + 3]
mov byte [eax + esi*4 + 3], cl
mov ecx, dword [ebp - 0x1e4]
cmp byte [ecx + esi*4 + 3], dl
jae 0x43c20e
movzx ecx, byte [ebx + esi*4 + 3]
xor edx, edx
movzx eax, byte [ebx + esi*4 + 2]
imul eax, ecx
mov ecx, 0xff
div ecx
mov ecx, dword [ebp - 0x1e4]
xor edx, edx
mov byte [ecx + esi*4], al
movzx ecx, byte [ebx + esi*4 + 3]
movzx eax, byte [ebx + esi*4 + 1]
imul eax, ecx
mov ecx, 0xff
div ecx
mov ecx, dword [ebp - 0x1e4]
xor edx, edx
mov byte [ecx + esi*4 + 1], al
movzx ecx, byte [ebx + esi*4 + 3]
movzx eax, byte [ebx + esi*4]
imul eax, ecx
mov ecx, 0xff
div ecx
mov ecx, dword [ebp - 0x1e4]
xor edx, edx
inc edx
mov byte [ebp - 0x1e5], dl
mov byte [ecx + esi*4 + 2], al
jmp 0x43c233
mov al, byte [ebx + esi*4 + 2]
xor edx, edx
mov byte [ecx + esi*4], al
inc edx
mov eax, dword [ebp - 0x1e4]
mov cl, byte [ebx + esi*4 + 1]
mov byte [eax + esi*4 + 1], cl
mov eax, dword [ebp - 0x1e4]
mov cl, byte [ebx + esi*4]
mov byte [eax + esi*4 + 2], cl
mov eax, dword [ebp - 0x1e4]
mov ecx, dword [ebp - 0x1f4]
cmp dword [eax + esi*4], ecx
jne 0x43c26f
mov byte [eax + esi*4], 0
mov eax, dword [ebp - 0x1e4]
mov byte [ebp - 0x1e5], dl
mov byte [eax + esi*4 + 1], 0
mov eax, dword [ebp - 0x1e4]
mov byte [eax + esi*4 + 2], 0
mov eax, dword [ebp - 0x1e4]
mov byte [eax + esi*4 + 3], 0
inc esi
mov edx, 0xff
cmp esi, edi
jl 0x43c18b
push ebx
call fcn.004f0145
pop ecx
push 0xa0
call fcn.004d06e6
pop ecx
xor edx, edx
mov dword [ebp - 0x1f4], eax
lea ecx, [eax + 0x1c]
mov dword [eax + 0x18], ecx
mov word [ecx], dx
mov ecx, dword [ebp - 0x1f8]
and dword [eax + 4], edx
and dword [eax + 8], edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1f0]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x1ec]
mov dword [eax + 0x10], ecx
mov cl, byte [ebp - 0x1e5]
mov byte [eax + 0x14], cl
jmp 0x43c2cd
xor eax, eax
call fcn.004d18a2
ret