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

Disassembly:
push 0x3d0
mov eax, 0x1029b7a0
call fcn.1010062a
mov ebx, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x3d8], ebx
mov edi, eax
test ebx, ebx
jne 0x100ac1b3
push sym.nsDui.dll_class_DuiLib::CDuiString_DuiLib::CPaintManagerUI::m_pStrResourcePath
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_class_DuiLib::CDuiString_const__
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [sym.nsDui.dll_class_DuiLib::CDuiString_DuiLib::CPaintManagerUI::m_pStrResourceZip]
cmp word [eax], cx
jne 0x100ac0d2
cmp dword [ebp + 8], ecx
je 0x100ac03e
push dword [ebp + 8]
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::Append_wchar_t_const__
xor ecx, ecx
push ecx
push 0x80
push 3
push ecx
xor ecx, ecx
inc ecx
push ecx
push accept
push dword [ebp - 0xcc]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x3c8], eax
cmp eax, 0xffffffff
jne 0x100ac07b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_
jmp 0x100ac293
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x100ac067
and dword [ebp - 0x3cc], 0
push edi
call fcn.10100009
pop ecx
push 0
mov esi, eax
lea eax, [ebp - 0x3cc]
push eax
push edi
push esi
push dword [ebp - 0x3c8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x3c8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x3cc], edi
je 0x100ac19f
push esi
call fcn.100ff9f0
pop ecx
jmp 0x100ac067
push eax
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::Append_wchar_t_const__
cmp byte [sym.nsDui.dll_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
je 0x100ac0ee
mov eax, dword [sym.nsDui.dll_void__DuiLib::CPaintManagerUI::m_hResourceZip]
jmp 0x100ac0fe
mov ecx, dword [ebp - 0xcc]
xor edx, edx
push 2
call fcn.100ab32b
pop ecx
mov dword [ebp - 0x3c4], eax
test eax, eax
je 0x100ac067
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x3b4]
push ecx
lea ecx, [ebp - 0x3c0]
push ecx
push ecx
mov ecx, eax
call fcn.100ab390
add esp, 0xc
test eax, eax
jne 0x100ac067
mov edi, dword [ebp - 0x188]
test edi, edi
je 0x100ac067
push edi
call fcn.10100009
mov edx, dword [ebp - 0x3c0]
mov esi, eax
mov ecx, dword [ebp - 0x3c4]
push edi
push esi
call fcn.100ab490
add esp, 0xc
test eax, eax
je 0x100ac18b
cmp eax, 0x600
je 0x100ac18b
push esi
call fcn.100ff9f0
cmp byte [sym.nsDui.dll_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
pop ecx
jne 0x100ac067
mov ecx, dword [ebp - 0x3c4]
call fcn.100ab4c3
jmp 0x100ac067
cmp byte [sym.nsDui.dll_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
jne 0x100ac19f
mov ecx, dword [ebp - 0x3c4]
call fcn.100ab4c3
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_
jmp 0x100ac28b
mov ecx, str.COLOR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100ac1e3
test dx, dx
je 0x100ac1dc
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100ac1e3
add eax, 4
add ecx, 4
test dx, dx
jne 0x100ac1ba
xor ecx, ecx
xor eax, eax
inc ecx
jmp 0x100ac1ea
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
jne 0x100ac1f5
mov esi, ecx
jmp 0x100ac321
mov eax, dword [sym.nsDui.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hResourceInstance]
test eax, eax
push ebx
push dword [ebp + 8]
cmove eax, dword [sym.nsDui.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hInstance]
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
mov dword [ebp - 0x3cc], esi
test esi, esi
je 0x100ac293
mov ecx, dword [sym.nsDui.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hResourceInstance]
test ecx, ecx
push esi
cmove ecx, dword [sym.nsDui.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hInstance]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x3c0], eax
push esi
test eax, eax
jne 0x100ac244
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x100ac293
mov eax, dword [sym.nsDui.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hResourceInstance]
test eax, eax
cmove eax, dword [sym.nsDui.dll_struct_HINSTANCE____DuiLib::CPaintManagerUI::m_hInstance]
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
test edi, edi
je 0x100ac293
push edi
call fcn.10100009
pop ecx
push edi
push dword [ebp - 0x3c0]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
push esi
call fcn.1026b580
add esp, 0xc
push dword [ebp - 0x3cc]
call dword [sym.imp.KERNEL32.dll_FreeResource]
test esi, esi
jne 0x100ac31e
push 0
push 0x80
push 3
push 0
xor eax, eax
inc eax
push eax
push accept
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x3c8], eax
cmp eax, 0xffffffff
je 0x100ac6ab
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x100ac6ab
and dword [ebp - 0x3c0], 0
push edi
call fcn.10100009
pop ecx
push 0
mov esi, eax
lea eax, [ebp - 0x3c0]
push eax
push edi
push esi
push dword [ebp - 0x3c8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x3c8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x3c0], edi
je 0x100ac316
push esi
call fcn.100ff9f0
pop ecx
xor esi, esi
test esi, esi
je 0x100ac6ab
xor ecx, ecx
inc ecx
and dword [ebp - 0x3d4], 0
mov edx, ecx
mov dword [ebp - 0x3c4], edx
mov dword [ebp - 0x3c8], ecx
test ebx, ebx
je 0x100ac38b
mov ecx, str.COLOR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
mov edx, dword [ebp - 0x3c4]
jne 0x100ac380
cmp word [eax], 0
je 0x100ac37c
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
mov word [ebp - 0x3ba], dx
mov edx, dword [ebp - 0x3c4]
jne 0x100ac380
add eax, 4
add ecx, 4
cmp word [ebp - 0x3ba], 0
jne 0x100ac341
xor eax, eax
jmp 0x100ac387
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x100ac3ea
and dword [ebp - 0x174], 0
lea eax, [edi + esi]
and dword [ebp - 0x164], 0
lea edx, [ebp - 0x3c4]
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x3dc]
push ecx
push eax
lea eax, [ebp - 0x3c8]
mov dword [ebp - 0xd4], esi
push eax
lea ecx, [ebp - 0x184]
mov dword [ebp - 0xdc], esi
call fcn.100d84b7
add esp, 0xc
mov edi, eax
push esi
call fcn.100ff9f0
pop ecx
test edi, edi
je 0x100ac6ab
mov edx, dword [ebp - 0x3c4]
jmp 0x100ac3f0
mov edi, dword [ebp - 0x3d4]
mov eax, dword [ebp - 0x3c8]
xor ecx, ecx
neg eax
and dword [ebp - 0x18], 0
push 0x20
and dword [ebp - 0x30], 0
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
xor esi, esi
pop eax
mov word [ebp - 0x32], ax
inc esi
mov eax, dword [ebp - 0x3c8]
imul eax, edx
push ecx
push ecx
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x3cc], eax
shl eax, 2
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x3b8]
push eax
push ecx
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0x28
push eax
push ecx
mov dword [ebp - 0x3c], edx
mov word [ebp - 0x34], si
mov byte [ebp - 0x3b9], cl
mov dword [ebp - 0x3b8], ecx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0x3dc], eax
test eax, eax
je 0x100ac6ab
xor ecx, ecx
mov dword [ebp - 0x3d0], ecx
test ebx, ebx
je 0x100ac511
mov ecx, str.COLOR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100ac4ad
test dx, dx
je 0x100ac4a7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100ac4ad
add eax, 4
add ecx, 4
test dx, dx
jne 0x100ac485
xor ecx, ecx
mov eax, ecx
jmp 0x100ac4b3
sbb eax, eax
or eax, esi
xor ecx, ecx
test eax, eax
jne 0x100ac511
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3d4], ecx
cmp word [eax], 0x23
jne 0x100ac4cd
push eax
call dword [sym.imp.USER32.dll_CharNextW]
push 0x10
lea ecx, [ebp - 0x3d4]
push ecx
push eax
call fcn.1027ae6a
mov dword [ebp - 0x3c0], eax
lea edi, [ebp - 0x3d0]
mov cl, byte [ebp - 0x3bd]
add esp, 0xc
mov byte [ebp - 0x3ce], al
mov al, byte [ebp - 0x3be]
mov byte [ebp - 0x3cd], cl
xor ecx, ecx
mov byte [ebp - 0x3cf], ah
mov byte [ebp - 0x3d0], al
mov edx, dword [ebp - 0x3cc]
mov esi, ecx
test edx, edx
jle 0x100ac61a
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x3b8]
mov cl, byte [edi + esi*4 + 3]
mov byte [eax + esi*4 + 3], cl
mov eax, 0xff
mov ecx, dword [ebp - 0x3b8]
cmp byte [ecx + esi*4 + 3], al
jae 0x100ac5b2
movzx ecx, byte [edi + esi*4 + 3]
xor edx, edx
movzx eax, byte [edi + esi*4 + 2]
imul eax, ecx
mov ecx, 0xff
div ecx
mov ecx, dword [ebp - 0x3b8]
xor edx, edx
mov byte [ecx + esi*4], al
movzx ecx, byte [edi + esi*4 + 3]
movzx eax, byte [edi + esi*4 + 1]
imul eax, ecx
mov ecx, 0xff
div ecx
mov ecx, dword [ebp - 0x3b8]
xor edx, edx
mov byte [ecx + esi*4 + 1], al
movzx ecx, byte [edi + esi*4 + 3]
movzx eax, byte [edi + esi*4]
imul eax, ecx
mov ecx, 0xff
div ecx
mov ecx, dword [ebp - 0x3b8]
mov edx, dword [ebp - 0x3cc]
mov byte [ecx + esi*4 + 2], al
xor eax, eax
inc eax
mov byte [ebp - 0x3b9], al
jmp 0x100ac5d4
mov al, byte [edi + esi*4 + 2]
mov byte [ecx + esi*4], al
mov eax, dword [ebp - 0x3b8]
mov cl, byte [edi + esi*4 + 1]
mov byte [eax + esi*4 + 1], cl
mov eax, dword [ebp - 0x3b8]
mov cl, byte [edi + esi*4]
mov byte [eax + esi*4 + 2], cl
mov eax, dword [ebp - 0x3b8]
cmp dword [eax + esi*4], ebx
jne 0x100ac60b
xor ecx, ecx
mov byte [eax + esi*4], cl
mov eax, dword [ebp - 0x3b8]
mov byte [eax + esi*4 + 1], cl
mov eax, dword [ebp - 0x3b8]
mov byte [eax + esi*4 + 2], cl
mov eax, dword [ebp - 0x3b8]
mov byte [eax + esi*4 + 3], cl
xor eax, eax
inc eax
mov byte [ebp - 0x3b9], al
inc esi
cmp esi, edx
jl 0x100ac524
mov ebx, dword [ebp - 0x3d8]
test ebx, ebx
je 0x100ac654
mov ecx, str.COLOR
mov ax, word [ebx]
cmp ax, word [ecx]
jne 0x100ac649
test ax, ax
je 0x100ac645
mov ax, word [ebx + 2]
cmp ax, word [ecx + 2]
jne 0x100ac649
add ebx, 4
add ecx, 4
test ax, ax
jne 0x100ac623
xor eax, eax
jmp 0x100ac650
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x100ac65b
push edi
call fcn.10278a27
pop ecx
push 0xa0
call fcn.100ffbf0
pop ecx
xor edx, edx
mov dword [ebp - 0x3d8], eax
lea ecx, [eax + 0x1c]
mov dword [eax + 0x18], ecx
mov word [ecx], dx
mov ecx, dword [ebp - 0x3dc]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x3b8]
and dword [eax + 8], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x3c4]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x3c8]
mov dword [eax + 0x10], ecx
mov cl, byte [ebp - 0x3b9]
mov byte [eax + 0x14], cl
mov byte [eax + 0x15], dl
jmp 0x100ac6ad
xor eax, eax
call fcn.101005d4
ret