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

Disassembly:
push 0xffffffffffffffff
push 0x494b14
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x4ed394]
xor eax, esp
mov dword [esp + 0x268], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ed394]
xor eax, esp
push eax
lea eax, [esp + 0x284]
mov dword fs:[0], eax
mov eax, dword [esp + 0x294]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x2c], eax
call fcn.0040c1b0
lea edx, [esp + 0x2c]
xor ebx, ebx
push edx
mov dword [esp + 0x290], ebx
call fcn.00465cf0
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov ecx, edi
sub ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
imul ecx, ecx, 0x62
sub ecx, 0x14
mov eax, 0x21c
sub eax, ecx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov byte [esp + 0x5c], bl
mov byte [esp + 0x64], bl
mov byte [esp + 0x6c], bl
mov byte [esp + 0x78], bl
mov byte [esp + 0x80], bl
mov byte [esp + 0x88], bl
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
cmp ebp, edi
jbe 0x40a33d
call fcn.0047a626
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
lea esp, [esp]
mov ebp, dword [esp + 0x3c]
cmp dword [esp + 0x38], ebp
jbe 0x40a35f
call fcn.0047a626
cmp edi, ebx
je 0x40a369
cmp edi, dword [esp + 0x2c]
je 0x40a36e
call fcn.0047a626
cmp dword [esp + 0x1c], ebp
je 0x40a769
mov ecx, dword [sym.SH7zInstaller.exe_class_CThemeManager__CThemeManager::m_ins]
push str.check_box
call sym.SH7zInstaller.exe_public:_class_shui::CSHControl____thiscall_CThemeManager::CreateControl_wchar_t_const__
mov ebp, eax
mov dword [esp + 0x58], esi
mov byte [esp + 0x5c], 1
mov dword [esp + 0x74], 0x163
mov byte [esp + 0x78], 1
mov dword [esp + 0x68], 0x55
mov byte [esp + 0x6c], 1
mov dword [esp + 0x84], 0xf
mov byte [esp + 0x88], 1
mov byte [esp + 0x64], bl
mov byte [esp + 0x80], bl
mov dword [esp + 0x70], ebx
mov dword [esp + 0x54], ebx
mov edx, dword [ebp]
mov edx, dword [edx + 0xc]
push 1
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call edx
mov eax, dword [ebp + 0x94]
mov dword [eax + 0x44], 0xff848282
mov esi, dword [ebp]
mov edx, dword [esi + 0x10]
push ebx
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebp
call edx
push eax
mov eax, dword [esi + 0x60]
mov ecx, ebp
call eax
cmp edi, ebx
jne 0x40a4c2
call fcn.0047a626
xor edi, edi
mov esi, dword [esp + 0x1c]
cmp esi, dword [edi + 0x10]
jb 0x40a429
call fcn.0047a626
lea eax, [esi + 4]
mov edi, 8
cmp dword [eax + 0x14], edi
jb 0x40a438
mov eax, dword [eax]
xor ecx, ecx
mov word [esp + 0x264], cx
mov ecx, eax
mov dword [esp + 0x278], 7
mov dword [esp + 0x274], ebx
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x40a460
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x264]
call fcn.0040c300
mov byte [esp + 0x28c], 1
cmp dword [esp + 0x278], edi
mov edi, dword [esp + 0x264]
jae 0x40a49b
lea edi, [esp + 0x264]
push 4
call fcn.00479562
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x40a4c9
mov edx, dword [0x4f100c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4f100c
call eax
add eax, 0x10
mov dword [esi], eax
jmp 0x40a4cb
mov edi, dword [edi]
jmp 0x40a41b
xor esi, esi
mov dword [esp + 0x20], esi
cmp edi, ebx
jne 0x40a4d7
xor eax, eax
jmp 0x40a4ef
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x40a4e0
sub eax, edx
sar eax, 1
mov ebx, eax
push edi
mov eax, esi
call fcn.0041a5e0
mov byte [esp + 0x28c], 2
mov eax, dword [ebp + 0x94]
mov edi, dword [eax + 0x30]
mov ecx, dword [esi]
mov esi, dword [edi]
add eax, 0x30
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x40a55f
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x40a554
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40a554
call fcn.00418db0
mov dword [esp + 0x24], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40a549
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x24]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x40a55f
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.0041a5e0
mov ebx, 1
mov byte [esp + 0x28c], bl
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
sub eax, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a58d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.00479461
mov eax, dword [ebp + 0x94]
add esp, 4
cmp dword [eax + 4], ebx
je 0x40a5fb
mov dword [eax + 4], ebx
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 8]
cmp dword [eax + 4], ebx
jne 0x40a5cd
mov dword [eax + 8], 4
mov edx, dword [ebp + 0x94]
cmp dword [edx + 8], ecx
je 0x40a5fb
lea eax, [esp + 0x98]
jmp 0x40a5e6
mov dword [eax + 8], 0
mov edx, dword [ebp + 0x94]
cmp dword [edx + 8], ecx
je 0x40a5fb
lea eax, [esp + 0xc8]
mov esi, dword [ebp]
mov edx, dword [esi + 0x10]
push 0
push eax
mov ecx, ebp
call edx
push eax
mov eax, dword [esi + 0x60]
mov ecx, ebp
call eax
mov ecx, dword [esp + 0x28]
push ebp
call sym.SH7zInstaller.exe_public:_class_shui::CSHControl____thiscall_shui::CSHControl::AddControl_class_shui::CSHControl__
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x40a757
call fcn.0047a626
xor eax, eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [eax + 0x10]
jb 0x40a626
call fcn.0047a626
mov edx, dword [ebp]
mov edx, dword [edx + 0x14]
xor eax, eax
cmp byte [edi + 0x54], al
mov ecx, ebp
setne al
push eax
call edx
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0xa8]
push ecx
mov ecx, ebp
call edx
push eax
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [esp + 0x4c]
add ecx, 0xd
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x40a75e
call fcn.0047a626
cmp edi, dword [esi + 0x10]
jb 0x40a679
call fcn.0047a626
sub esp, 0xc0
mov edx, esp
mov dword [esp + 0xe4], esp
push edx
call fcn.0040a7e0
push ebp
lea ebx, [esp + 0x260]
call fcn.0040d2e0
add esp, 0xc4
mov byte [esp + 0x28c], 3
mov ecx, dword [eax]
lea edx, [esp + 0xdc]
lea edi, [eax + 4]
push edx
mov dword [esp + 0xdc], ecx
call fcn.0040a7e0
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x90]
push ecx
add ebx, 0x2d8
mov byte [esp + 0x294], 4
call fcn.0040b890
lea esi, [esp + 0xdc]
call fcn.0040a8f0
lea esi, [esp + 0x1a0]
call fcn.0040a8f0
mov byte [esp + 0x28c], 0
cmp dword [esp + 0x278], 8
jb 0x40a723
mov edx, dword [esp + 0x264]
push edx
call fcn.00479461
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40a765
call fcn.0047a626
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x10]
jb 0x40a740
call fcn.0047a626
add dword [esp + 0x1c], 0xc0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
xor ebx, ebx
jmp 0x40a350
mov eax, dword [esi]
jmp 0x40a618
mov esi, dword [esi]
jmp 0x40a66f
mov eax, dword [eax]
jmp 0x40a732
mov esi, dword [esp + 0x38]
cmp esi, ebx
je 0x40a79c
mov edi, dword [esp + 0x3c]
cmp esi, edi
je 0x40a78f
lea esp, [esp]
call fcn.0040a8f0
add esi, 0xc0
cmp esi, edi
jne 0x40a780
mov edx, dword [esp + 0x38]
push edx
call fcn.00479461
add esp, 4
mov eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.00479461
add esp, 4
mov ecx, dword [esp + 0x284]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x268]
xor ecx, esp
call fcn.0047946c
add esp, 0x27c
ret 4