Function at 0x10038e70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10065c05
mov eax, dword fs:[0]
push eax
sub esp, 0x470
mov eax, dword [0x100a501c]
xor eax, esp
mov dword [esp + 0x468], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100a501c]
xor eax, esp
push eax
lea eax, [esp + 0x484]
mov dword fs:[0], eax
mov eax, dword [esp + 0x494]
mov esi, ecx
lea ecx, [esp + 0x2a4]
mov dword [esp + 0x48], eax
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CImageAttributeUI::constructor_void_
mov dword [esp + 0x48c], 0
lea ecx, [esp + 0x220]
xor edx, edx
mov dword [esp + 0x21c], ecx
mov word [esp + 0x220], dx
lea eax, [esp + 0x110]
xor ecx, ecx
mov dword [esp + 0x10c], eax
mov word [esp + 0x110], cx
lea edi, [esp + 0x198]
mov dword [esp + 0x194], edi
mov word [esp + 0x198], dx
mov byte [esp + 0x48c], 3
mov ebp, dword [sym.imp.MSVCR90.dll_free]
cmp word [esi], cx
je 0x10039571
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
lea eax, [esp + 0x110]
cmp dword [esp + 0x10c], eax
je 0x10038f56
mov ecx, dword [esp + 0x10c]
push ecx
call ebp
mov edi, dword [esp + 0x198]
add esp, 4
xor eax, eax
lea ecx, [esp + 0x198]
lea edx, [esp + 0x110]
mov dword [esp + 0x10c], edx
mov word [esp + 0x110], ax
cmp edi, ecx
je 0x10038f7f
push edi
call ebp
add esp, 4
xor edx, edx
lea edi, [esp + 0x198]
mov dword [esp + 0x194], edi
mov word [esp + 0x198], dx
movzx eax, word [esi]
test ax, ax
jbe 0x10038fb9
cmp ax, 0x20
ja 0x10038fb2
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
ja 0x10038f9f
mov edi, dword [esp + 0x194]
movzx eax, word [esi]
test ax, ax
je 0x1003900c
cmp ax, 0x3d
je 0x10039005
cmp ax, 0x20
jbe 0x10039005
push esi
call ebx
mov edi, eax
cmp esi, edi
jae 0x10038ffd
mov ax, word [esi]
xor ecx, ecx
lea edx, [esp + 0x1c]
mov word [esp + 0x1e], cx
push edx
lea ecx, [esp + 0x110]
mov word [esp + 0x20], ax
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CDuiString::Append_wchar_t_const__
add esi, 2
cmp esi, edi
jb 0x10038fd6
movzx eax, word [esi]
test ax, ax
jne 0x10038fc1
mov edi, dword [esp + 0x194]
movzx eax, word [esi]
test ax, ax
jbe 0x1003902e
cmp ax, 0x20
ja 0x10039027
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
ja 0x10039014
mov edi, dword [esp + 0x194]
mov ax, word [esi]
add esi, 2
cmp ax, 0x3d
jne 0x100395cd
movzx eax, word [esi]
test ax, ax
jbe 0x10039060
cmp ax, 0x20
ja 0x10039059
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
ja 0x10039046
mov edi, dword [esp + 0x194]
mov cx, word [esi]
add esi, 2
cmp cx, 0x27
jne 0x10039649
movzx eax, word [esi]
test ax, ax
je 0x100390bd
cmp ax, 0x27
je 0x100390b6
push esi
call ebx
mov edi, eax
cmp esi, edi
jae 0x100390ae
mov dx, word [esi]
lea ecx, [esp + 0x18]
xor eax, eax
push ecx
lea ecx, [esp + 0x198]
mov word [esp + 0x1c], dx
mov word [esp + 0x1e], ax
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CDuiString::Append_wchar_t_const__
add esi, 2
cmp esi, edi
jb 0x10039087
movzx eax, word [esi]
test ax, ax
jne 0x10039078
mov edi, dword [esp + 0x194]
mov dx, word [esi]
add esi, 2
cmp dx, 0x27
jne 0x100395cd
cmp word [edi], 0
je 0x10039557
mov eax, dword [esp + 0x10c]
mov ecx, 0x1006fdac
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10039109
test dx, dx
je 0x10039105
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10039109
add eax, 4
add ecx, 4
test dx, dx
jne 0x100390e3
xor eax, eax
jmp 0x1003910e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10039541
mov eax, dword [esp + 0x10c]
mov ecx, 0x100703ec
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10039148
test dx, dx
je 0x10039144
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10039148
add eax, 4
add ecx, 4
test dx, dx
jne 0x10039122
xor eax, eax
jmp 0x1003914d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10039541
mov eax, dword [esp + 0x10c]
mov ecx, str.restype
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10039187
test dx, dx
je 0x10039183
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10039187
add eax, 4
add ecx, 4
test dx, dx
jne 0x10039161
xor eax, eax
jmp 0x1003918c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1003919c
lea ecx, [esp + 0x3ac]
jmp 0x10039548
mov eax, dword [esp + 0x10c]
mov ecx, str.dest
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100391ce
test dx, dx
je 0x100391ca
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100391ce
add eax, 4
add ecx, 4
test dx, dx
jne 0x100391a8
xor eax, eax
jmp 0x100391d3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10039254
lea eax, [esp + 0xfc]
push edi
push eax
call sym.DTLUI.dll_public:_static_struct_tagRECT___cdecl_DuiLib::CStrAttribute::ToRect_wchar_t_const__
mov ecx, dword [eax]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x88], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 0xc]
add esp, 8
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x90], edx
call dword [sym.imp.USER32.dll_CopyRect]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x430], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x434], eax
mov dword [esp + 0x438], ecx
mov dword [esp + 0x43c], edx
jmp 0x10039550
mov eax, dword [esp + 0x10c]
mov ecx, str.offset
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10039286
test dx, dx
je 0x10039282
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10039286
add eax, 4
add ecx, 4
test dx, dx
jne 0x10039260
xor eax, eax
jmp 0x1003928b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1003931e
lea eax, [esp + 0xcc]
push edi
push eax
call sym.DTLUI.dll_public:_static_struct_tagRECT___cdecl_DuiLib::CStrAttribute::ToRect_wchar_t_const__
mov ecx, dword [eax]
mov dword [esp + 0xa4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xa8], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xac], ecx
mov edx, dword [eax + 0xc]
add esp, 8
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0xb0]
push ecx
mov dword [esp + 0xb0], edx
call dword [sym.imp.USER32.dll_CopyRect]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x440], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x444], eax
mov dword [esp + 0x448], ecx
mov dword [esp + 0x44c], edx
jmp 0x10039550
push str.source
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x100393b3
lea eax, [esp + 0xec]
push edi
push eax
call sym.DTLUI.dll_public:_static_struct_tagRECT___cdecl_DuiLib::CStrAttribute::ToRect_wchar_t_const__
mov ecx, dword [eax]
mov dword [esp + 0x94], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x98], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x9c], ecx
mov edx, dword [eax + 0xc]
add esp, 8
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x60]
push ecx
mov dword [esp + 0xa0], edx
call dword [sym.imp.USER32.dll_CopyRect]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x450], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x454], eax
mov dword [esp + 0x458], ecx
mov dword [esp + 0x45c], edx
jmp 0x10039550
push str.corner
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x10039420
lea eax, [esp + 0xdc]
push edi
push eax
call sym.DTLUI.dll_public:_static_struct_tagRECT___cdecl_DuiLib::CStrAttribute::ToRect_wchar_t_const__
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x58], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 0xc]
add esp, 8
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xc0]
push ecx
mov dword [esp + 0x60], edx
call dword [sym.imp.USER32.dll_CopyRect]
lea edx, [esp + 0xbc]
push edx
lea ecx, [esp + 0x2a8]
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CImageAttributeUI::SetCornerRect_class_DuiLib::CDuiRect_const__
jmp 0x10039550
push str.mask
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x1003944a
push edi
call sym.DTLUI.dll_public:_static_unsigned_long_int___cdecl_DuiLib::CStrAttribute::ToColor_wchar_t_const__
add esp, 4
mov dword [esp + 0x470], eax
jmp 0x10039550
push str.fade
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x10039474
push edi
call sym.DTLUI.dll_public:_static_unsigned_int___cdecl_DuiLib::CStrAttribute::ToUInt32_wchar_t_const__
add esp, 4
mov byte [esp + 0x474], al
jmp 0x10039550
push str.hole
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x1003949e
push edi
call sym.DTLUI.dll_public:_static_bool___cdecl_DuiLib::CStrAttribute::ToBool_wchar_t_const__
add esp, 4
mov byte [esp + 0x475], al
jmp 0x10039557
push str.xtiled
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x100394c8
push edi
call sym.DTLUI.dll_public:_static_bool___cdecl_DuiLib::CStrAttribute::ToBool_wchar_t_const__
add esp, 4
mov byte [esp + 0x476], al
jmp 0x10039557
push str.ytiled
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x100394ef
push edi
call sym.DTLUI.dll_public:_static_bool___cdecl_DuiLib::CStrAttribute::ToBool_wchar_t_const__
add esp, 4
mov byte [esp + 0x477], al
jmp 0x10039557
push str.stretch
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x10039516
push edi
call sym.DTLUI.dll_public:_static_bool___cdecl_DuiLib::CStrAttribute::ToBool_wchar_t_const__
add esp, 4
mov byte [esp + 0x478], al
jmp 0x10039557
push str.status
lea ecx, [esp + 0x110]
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CDuiString::operator_wchar_t_const__const
test al, al
je 0x10039557
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x220]
call fcn.10016680
jmp 0x10039550
lea ecx, [esp + 0x328]
push 0xffffffffffffffff
push edi
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CDuiString::Assign_wchar_t_const___int_
mov edi, dword [esp + 0x194]
mov cx, word [esi]
add esi, 2
cmp cx, 0x20
jne 0x10039649
cmp word [esi], 0
jne 0x10038f32
lea edx, [esp + 0x30]
push edx
call fcn.100184c0
lea eax, [esp + 0x2c]
mov byte [esp + 0x48c], 4
mov ecx, dword [esp + 0x21c]
mov ebp, dword [sym.imp.MSVCR90.dll_wcstok_s]
push eax
push 0x1007073c
push ecx
mov dword [esp + 0x38], 0
call ebp
mov ebx, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x10039702
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x100396a1
xor edx, edx
jmp 0x100396aa
lea edx, [esp + 0x198]
mov byte [esp + 0x48c], 2
cmp edi, edx
je 0x100395e6
push edi
call ebp
add esp, 4
lea eax, [esp + 0x110]
mov byte [esp + 0x48c], 1
cmp dword [esp + 0x10c], eax
je 0x1003960b
mov ecx, dword [esp + 0x10c]
push ecx
call ebp
add esp, 4
mov byte [esp + 0x48c], 0
mov eax, dword [esp + 0x21c]
lea edx, [esp + 0x220]
cmp eax, edx
je 0x1003962b
push eax
call ebp
add esp, 4
lea ecx, [esp + 0x2a4]
mov dword [esp + 0x48c], 0xffffffff
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CImageAttributeUI::destructor_void_
xor al, al
jmp 0x100398ba
lea eax, [esp + 0x198]
mov byte [esp + 0x48c], 2
cmp edi, eax
je 0x10039662
push edi
call ebp
add esp, 4
lea ecx, [esp + 0x110]
mov byte [esp + 0x48c], 1
cmp dword [esp + 0x10c], ecx
je 0x10039687
mov edx, dword [esp + 0x10c]
push edx
call ebp
add esp, 4
mov byte [esp + 0x48c], 0
mov eax, dword [esp + 0x21c]
lea ecx, [esp + 0x220]
cmp eax, ecx
jmp 0x10039623
mov edx, dword [esp + 0x44]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x40]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x100396c4
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x40], ecx
jmp 0x100396e5
mov edi, ecx
cmp esi, ecx
jbe 0x100396cc
call ebx
mov eax, dword [esp + 0x30]
push edi
push eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
call fcn.100399c0
lea ecx, [esp + 0x2c]
push ecx
push 0x1007073c
push 0
call ebp
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x100395ba
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x458]
sub eax, dword [esp + 0x450]
sub ecx, esi
sar ecx, 2
xor edx, edx
div ecx
xor edi, edi
mov ebp, eax
test ecx, ecx
jbe 0x10039813
xor ebx, ebx
push 0x1d8
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x18], eax
mov byte [esp + 0x48c], 5
test eax, eax
je 0x1003975f
lea edx, [esp + 0x2a4]
push edx
mov ecx, eax
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CImageAttributeUI::constructor_class_DuiLib::CImageAttributeUI_const__
mov esi, eax
jmp 0x10039761
xor esi, esi
mov byte [esp + 0x48c], 4
mov eax, dword [esi + 0x1ac]
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 0x1b0]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 0x1b4]
mov dword [esp + 0x24], edx
mov ecx, dword [esi + 0x1b8]
push 0
push ebx
lea edx, [esp + 0x24]
add eax, ebp
push edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x1ac], eax
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x1b0], ecx
mov edx, dword [esp + 0x24]
mov dword [esi + 0x1b4], edx
mov eax, dword [esp + 0x28]
mov ecx, esi
mov dword [esi + 0x1b8], eax
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CImageAttributeUI::UpdateAttribute_void_
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x3c]
sar ecx, 2
cmp edi, ecx
jb 0x100397e9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + edi*4]
mov ecx, dword [esp + 0x48]
push esi
push eax
call sym.DTLUI.dll_public:_bool___thiscall_DuiLib::CStdStringPtrMap::Insert_wchar_t_const___void__
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
sub ecx, esi
inc edi
sar ecx, 2
add ebx, ebp
cmp edi, ecx
jb 0x1003972f
xor edi, edi
cmp esi, edi
je 0x10039822
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [esp + 0x30]
push edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
mov byte [esp + 0x490], 2
mov eax, dword [esp + 0x198]
mov esi, dword [sym.imp.MSVCR90.dll_free]
lea ecx, [esp + 0x19c]
add esp, 4
cmp eax, ecx
je 0x10039861
push eax
call esi
add esp, 4
mov byte [esp + 0x48c], 1
mov eax, dword [esp + 0x10c]
lea edx, [esp + 0x110]
cmp eax, edx
je 0x10039881
push eax
call esi
add esp, 4
mov byte [esp + 0x48c], 0
mov eax, dword [esp + 0x21c]
lea ecx, [esp + 0x220]
cmp eax, ecx
je 0x100398a1
push eax
call esi
add esp, 4
lea ecx, [esp + 0x2a4]
mov dword [esp + 0x48c], 0xffffffff
call sym.DTLUI.dll_public:_void___thiscall_DuiLib::CImageAttributeUI::destructor_void_
mov al, 1
mov ecx, dword [esp + 0x484]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x468]
xor ecx, esp
call fcn.10062a76
add esp, 0x47c
ret 4