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

Disassembly:
sub esp, 0x180
push ebx
push ebp
xor eax, eax
push esi
mov esi, dword [esp + 0x190]
mov ecx, dword [esi + 8]
push edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
xor edi, edi
push ecx
mov dword [esp + 0x38], edi
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esi + 8]
xor eax, eax
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
lea eax, [esp + 0x64]
push eax
push 0x501
push ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x64], edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x54]
test dl, 1
jne 0x41021e
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esi + 8]
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
mov ebp, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ecx
jmp 0x41022a
mov ebp, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
and edx, 4
lea edi, [ecx - 0x50]
mov dword [esp + 0x24], edx
lea edx, [edi + 0x46]
mov dword [esp + 0x84], edi
mov dword [esp + 0x94], edi
add edi, 0x46
mov dword [esp + 0x8c], edx
lea edx, [ebp - 0xdc]
add ebp, 0xa
lea ebx, [edx + 0xdc]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edi
lea edi, [eax - 0xe6]
lea ebx, [edi + 0xdc]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0xb0], ebp
add ebp, 0xdc
lea ebx, [ecx + 0x46]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x6c]
add ebx, 0xa
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xb8], ebp
lea ebp, [ebx + 0x46]
add ebx, 0x46
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xcc], ebp
add ebx, 0x2c
lea ebp, [edx + 0xdc]
mov dword [esp + 0xd8], ebp
mov ebp, ebx
mov dword [esp + 0xe4], ebp
add ebp, 0x46
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xec], ebp
add ebx, 0x46
lea ebp, [edx + 0xdc]
mov dword [esp + 0xfc], ebx
mov dword [esp + 0xf8], ebp
lea ebp, [ecx - 0x72]
mov ebx, ebp
mov dword [esp + 0x104], ebx
add ebx, 0x46
lea esi, [eax + 0xdc]
mov dword [esp + 0x10c], ebx
lea ebx, [edx + 0xdc]
mov dword [esp + 0x118], ebx
lea ebx, [ecx + 6]
mov dword [esp + 0x88], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xe8], esi
mov dword [esp + 0x108], esi
mov dword [esp + 0x128], esi
lea esi, [ebx + 0x46]
mov dword [esp + 0x114], ebp
add ebp, 0x46
mov dword [esp + 0x12c], esi
lea esi, [edx + 0xdc]
mov dword [esp + 0x124], ebx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x80], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xd0], edx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xf0], edx
mov dword [esp + 0x100], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x120], eax
mov dword [esp + 0x130], edx
mov dword [esp + 0x138], esi
add ebx, 0x46
add ecx, 0x2c
mov dword [esp + 0x160], eax
mov dword [esp + 0x13c], ebx
mov ebx, ecx
lea esi, [edi + 0xdc]
mov eax, ecx
add eax, 0x46
mov dword [esp + 0x140], edi
lea edi, [ebx + 0x46]
mov dword [esp + 0x17c], eax
xor eax, eax
mov dword [esp + 0x14c], edi
mov dword [esp + 0x16c], edi
xor edi, edi
push edi
mov ebp, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x148], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x178], ecx
mov ecx, dword [esp + 0x198]
push eax
mov dword [esp + 0x178], edx
mov edx, dword [ecx + 8]
push 0x506
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], ebp
add ebx, 0xdc
mov dword [esp + 0x154], esi
add ebp, 0x46
mov dword [esp + 0x174], esi
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push edx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x16c], ebp
mov dword [esp + 0x188], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x50], edi
call esi
cmp dword [esp + 0x24], edi
je 0x410813
mov ecx, dword [esp + 0x194]
mov edx, dword [ecx + 8]
xor eax, eax
push edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
lea eax, [esp + 0x74]
push eax
push 0x507
push edx
mov dword [esp + 0x80], edi
call esi
mov eax, 0x20
add dword [esp + 0xe4], eax
add dword [esp + 0xec], eax
add dword [esp + 0xf4], eax
add dword [esp + 0xfc], eax
sub dword [esp + 0x104], eax
sub dword [esp + 0x10c], eax
sub dword [esp + 0x114], eax
sub dword [esp + 0x11c], eax
add dword [esp + 0x144], eax
add dword [esp + 0x14c], eax
add dword [esp + 0x154], eax
add dword [esp + 0x15c], eax
add dword [esp + 0x164], eax
add dword [esp + 0x16c], eax
add dword [esp + 0x174], eax
add dword [esp + 0x17c], eax
lea ebp, [esp + 0x88]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp - 8]
cmp eax, ecx
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
jl 0x4107e6
cmp eax, dword [esp + 0x38]
jg 0x4107e6
mov eax, dword [ebp - 4]
cmp eax, edx
jl 0x4107e6
mov ebx, dword [esp + 0x3c]
cmp eax, ebx
jg 0x4107e6
mov eax, dword [ebp]
cmp eax, ecx
jl 0x4107e6
cmp eax, dword [esp + 0x38]
jg 0x4107e6
mov eax, dword [ebp + 4]
cmp eax, edx
jl 0x4107e6
cmp eax, ebx
jg 0x4107e6
cmp esi, edi
mov eax, dword [ebp - 4]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x14], esi
jg 0x410600
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
cmp edx, ecx
mov dword [esp + 0x58], edx
jg 0x410614
mov dword [esp + 0x58], ecx
cmp esi, edi
mov dword [esp + 0x18], esi
jl 0x410620
mov dword [esp + 0x18], edi
cmp edx, ecx
mov dword [esp + 0x1c], edx
jl 0x41062c
mov dword [esp + 0x1c], ecx
cmp eax, ebx
mov dword [esp + 0x20], eax
jg 0x410638
mov dword [esp + 0x20], ebx
mov ecx, dword [ebp - 8]
mov esi, dword [ebp]
cmp ecx, esi
mov edi, ecx
jg 0x410646
mov edi, esi
cmp eax, ebx
jge 0x41064c
mov ebx, eax
cmp ecx, esi
jge 0x410652
mov esi, ecx
mov eax, dword [esp + 0x1c]
sub eax, edi
cdq
mov ecx, eax
xor ecx, edx
mov eax, esi
sub eax, dword [esp + 0x58]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x410670
mov ecx, eax
mov eax, edi
sub eax, esi
cdq
mov esi, eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x1c]
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
xor eax, eax
cmp esi, ecx
setg al
mov esi, eax
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x20]
cdq
mov ecx, eax
xor ecx, edx
mov eax, ebx
sub eax, dword [esp + 0x14]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x4106b3
mov ecx, eax
test esi, esi
je 0x4106db
mov eax, dword [esp + 0x20]
sub eax, ebx
cdq
mov esi, eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x18]
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
cmp esi, ecx
jg 0x4107e6
mov ecx, dword [ebp - 8]
mov eax, dword [esp + 0x7c]
mov edx, dword [ebp]
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 4]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x74]
cmp ecx, eax
mov dword [esp + 0x188], edx
mov dword [esp + 0x14], ecx
jg 0x410709
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
cmp edi, edx
mov dword [esp + 0x18], edi
jg 0x41071d
mov dword [esp + 0x18], edx
cmp ecx, eax
mov dword [esp + 0x20], ecx
jl 0x410729
mov dword [esp + 0x20], eax
cmp edi, edx
mov ebp, dword [esp + 0x70]
jl 0x410735
mov ebp, dword [esp + 0x78]
cmp ebx, esi
mov dword [esp + 0x1c], ebx
jg 0x410741
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x188]
cmp eax, ecx
mov edi, eax
jg 0x410757
mov edi, ecx
cmp ebx, esi
jl 0x41075d
mov ebx, esi
cmp eax, ecx
mov esi, eax
jl 0x410765
mov esi, ecx
mov eax, ebp
sub eax, edi
cdq
mov ecx, eax
xor ecx, edx
mov eax, esi
sub eax, dword [esp + 0x18]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x410781
mov ecx, eax
mov eax, edi
sub eax, esi
cdq
mov esi, eax
mov eax, dword [esp + 0x18]
sub eax, ebp
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
xor eax, eax
cmp esi, ecx
setg al
mov esi, eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x1c]
cdq
mov ecx, eax
xor ecx, edx
mov eax, ebx
sub eax, dword [esp + 0x14]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x4107c2
mov ecx, eax
test esi, esi
je 0x41080a
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
xor esi, edx
sub eax, ebx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
cmp esi, ecx
jle 0x41080a
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
add eax, 1
add ebp, 0x10
cmp eax, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebp
jae 0x4109b6
jmp 0x41058a
mov eax, dword [esp + 0x24]
jmp 0x41099d
lea eax, [esp + 0x88]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x30]
mov ecx, dword [eax - 8]
cmp ecx, edx
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jl 0x410979
cmp ecx, edi
jg 0x410979
mov ecx, dword [eax - 4]
cmp ecx, esi
jl 0x410979
cmp ecx, dword [esp + 0x3c]
jg 0x410979
mov ecx, dword [eax]
cmp ecx, edx
jl 0x410979
cmp ecx, edi
jg 0x410979
mov ecx, dword [eax + 4]
cmp ecx, esi
jl 0x410979
cmp ecx, dword [esp + 0x3c]
jg 0x410979
cmp ebp, ebx
mov edx, dword [eax]
mov esi, dword [eax - 8]
mov ecx, dword [eax - 4]
mov eax, dword [eax + 4]
mov dword [esp + 0x188], edx
mov dword [esp + 0x14], ebp
jg 0x4108a7
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
cmp edi, edx
mov dword [esp + 0x24], edi
jg 0x4108bb
mov dword [esp + 0x24], edx
cmp ebp, ebx
mov dword [esp + 0x20], ebp
jl 0x4108c7
mov dword [esp + 0x20], ebx
cmp edi, edx
mov ebp, edi
jl 0x4108cf
mov ebp, edx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jg 0x4108db
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x188]
cmp esi, edx
mov edi, esi
jg 0x4108ea
mov edi, edx
cmp ecx, eax
mov ebx, ecx
jl 0x4108f2
mov ebx, eax
cmp esi, edx
jl 0x4108f8
mov esi, edx
mov eax, ebp
sub eax, edi
cdq
mov ecx, eax
xor ecx, edx
mov eax, esi
sub eax, dword [esp + 0x24]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x410914
mov ecx, eax
mov eax, edi
sub eax, esi
cdq
mov esi, eax
mov eax, dword [esp + 0x24]
sub eax, ebp
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
xor eax, eax
cmp esi, ecx
setg al
mov esi, eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
cdq
mov ecx, eax
xor ecx, edx
mov eax, ebx
sub eax, dword [esp + 0x14]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jg 0x410955
mov ecx, eax
test esi, esi
je 0x410999
mov eax, dword [esp + 0x18]
sub eax, ebx
cdq
mov esi, eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
cmp esi, ecx
jle 0x410999
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
add ecx, 1
add eax, 0x10
cmp ecx, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
jae 0x4109b6
jmp 0x410826
mov eax, dword [esp + 0x1c]
shl eax, 4
mov edx, dword [esp + eax + 0x84]
mov ecx, dword [esp + eax + 0x80]
mov dword [esp + 0x50], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x194]
mov edx, dword [esi + 4]
push 0x15
push 0
push 0
push eax
push ecx
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esi + 4]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret 4