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

Disassembly:
push 0x3d0
mov eax, 0x1027f120
call fcn.100e6a39
mov ebx, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x3d8], ebx
mov edi, eax
test ebx, ebx
jne 0x100a6d08
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 0x100a6c27
cmp dword [ebp + 8], ecx
je 0x100a6b93
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 0x100a6bd0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_
jmp 0x100a6de8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x100a6bbc
and dword [ebp - 0x3cc], 0
push edi
call fcn.100e641b
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 0x100a6cf4
push esi
call fcn.100e63c6
pop ecx
jmp 0x100a6bbc
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 0x100a6c43
mov eax, dword [sym.nsDui.dll_void__DuiLib::CPaintManagerUI::m_hResourceZip]
jmp 0x100a6c53
mov ecx, dword [ebp - 0xcc]
xor edx, edx
push 2
call fcn.100a5e80
pop ecx
mov dword [ebp - 0x3c4], eax
test eax, eax
je 0x100a6bbc
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x3b4]
push ecx
lea ecx, [ebp - 0x3c0]
push ecx
push ecx
mov ecx, eax
call fcn.100a5ee5
add esp, 0xc
test eax, eax
jne 0x100a6bbc
mov edi, dword [ebp - 0x188]
test edi, edi
je 0x100a6bbc
push edi
call fcn.100e641b
mov edx, dword [ebp - 0x3c0]
mov esi, eax
mov ecx, dword [ebp - 0x3c4]
push edi
push esi
call fcn.100a5fe5
add esp, 0xc
test eax, eax
je 0x100a6ce0
cmp eax, 0x600
je 0x100a6ce0
push esi
call fcn.100e63c6
cmp byte [sym.nsDui.dll_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
pop ecx
jne 0x100a6bbc
mov ecx, dword [ebp - 0x3c4]
call fcn.100a6018
jmp 0x100a6bbc
cmp byte [sym.nsDui.dll_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
jne 0x100a6cf4
mov ecx, dword [ebp - 0x3c4]
call fcn.100a6018
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcc]
call sym.nsDui.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_
jmp 0x100a6de0
mov ecx, str.COLOR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100a6d38
test dx, dx
je 0x100a6d31
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100a6d38
add eax, 4
add ecx, 4
test dx, dx
jne 0x100a6d0f
xor ecx, ecx
xor eax, eax
inc ecx
jmp 0x100a6d3f
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
jne 0x100a6d4a
mov esi, ecx
jmp 0x100a6e76
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 0x100a6de8
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 0x100a6d99
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x100a6de8
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 0x100a6de8
push edi
call fcn.100e641b
pop ecx
push edi
push dword [ebp - 0x3c0]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
push esi
call fcn.102519a0
add esp, 0xc
push dword [ebp - 0x3cc]
call dword [sym.imp.KERNEL32.dll_FreeResource]
test esi, esi
jne 0x100a6e73
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 0x100a7200
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x100a7200
and dword [ebp - 0x3c0], 0
push edi
call fcn.100e641b
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 0x100a6e6b
push esi
call fcn.100e63c6
pop ecx
xor esi, esi
test esi, esi
je 0x100a7200
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 0x100a6ee0
mov ecx, str.COLOR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
mov edx, dword [ebp - 0x3c4]
jne 0x100a6ed5
cmp word [eax], 0
je 0x100a6ed1
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
mov word [ebp - 0x3ba], dx
mov edx, dword [ebp - 0x3c4]
jne 0x100a6ed5
add eax, 4
add ecx, 4
cmp word [ebp - 0x3ba], 0
jne 0x100a6e96
xor eax, eax
jmp 0x100a6edc
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x100a6f3f
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.100d3019
add esp, 0xc
mov edi, eax
push esi
call fcn.100e63c6
pop ecx
test edi, edi
je 0x100a7200
mov edx, dword [ebp - 0x3c4]
jmp 0x100a6f45
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 0x100a7200
xor ecx, ecx
mov dword [ebp - 0x3d0], ecx
test ebx, ebx
je 0x100a7066
mov ecx, str.COLOR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100a7002
test dx, dx
je 0x100a6ffc
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100a7002
add eax, 4
add ecx, 4
test dx, dx
jne 0x100a6fda
xor ecx, ecx
mov eax, ecx
jmp 0x100a7008
sbb eax, eax
or eax, esi
xor ecx, ecx
test eax, eax
jne 0x100a7066
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3d4], ecx
cmp word [eax], 0x23
jne 0x100a7022
push eax
call dword [sym.imp.USER32.dll_CharNextW]
push 0x10
lea ecx, [ebp - 0x3d4]
push ecx
push eax
call fcn.1025c99c
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 0x100a716f
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 0x100a7107
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 0x100a7129
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 0x100a7160
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 0x100a7079
mov ebx, dword [ebp - 0x3d8]
test ebx, ebx
je 0x100a71a9
mov ecx, str.COLOR
mov ax, word [ebx]
cmp ax, word [ecx]
jne 0x100a719e
test ax, ax
je 0x100a719a
mov ax, word [ebx + 2]
cmp ax, word [ecx + 2]
jne 0x100a719e
add ebx, 4
add ecx, 4
test ax, ax
jne 0x100a7178
xor eax, eax
jmp 0x100a71a5
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x100a71b0
push edi
call fcn.10261128
pop ecx
push 0xa0
call fcn.100e5dff
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 0x100a7202
xor eax, eax
call fcn.100e69f4
ret