Function at 0x57d2ed
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x624320
push eax
mov dword fs:[0], esp
sub esp, 0xbc
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test al, al
je 0x57d324
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
push ecx
push edx
push eax
mov ecx, esi
call fcn.0057cec0
jmp 0x57eeb0
mov ecx, dword [esi + 0x24]
call fcn.00582e70
mov ecx, dword [esi + 0x24]
mov ebp, eax
mov dword [esp + 0x94], ebp
mov edx, dword [ecx]
call dword [edx + 0x13c]
mov bl, al
test bl, bl
mov byte [esp + 0x37], bl
je 0x57d393
mov ecx, dword [esi + 0x24]
call fcn.00572b10
test al, al
je 0x57d393
cmp ebp, 1
je 0x57d393
mov eax, dword [esi + 0x24]
lea ecx, [esp + 0x6c]
push ecx
mov eax, dword [eax + 0x70]
mov edx, dword [eax + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
push eax
lea edx, [esp + 0x70]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57eeb0
lea eax, [esi + 0x14]
push eax
mov dword [esp + 0x9c], eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov ecx, dword [esi + 0x24]
xor eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0x110]
mov ecx, dword [esi + 0x24]
mov edi, eax
mov dword [esp + 0x64], edi
mov edx, dword [ecx]
call dword [edx + 0x114]
mov ecx, 8
mov dword [esp + 0x68], eax
cmp edi, ecx
jge 0x57d3d9
mov dword [esp + 0x64], ecx
cmp eax, ecx
jge 0x57d3e1
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x24]
call fcn.00599c70
mov edx, dword [eax + 0x1c]
lea ecx, [esp + 0xac]
push ecx
push edx
mov dword [esp + 0x40], eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov al, byte [esp + 0xe4]
cmp ebp, 1
mov byte [esp + 0x13], al
jne 0x57d627
test al, al
jne 0x57d699
mov ecx, dword [esi + 0x24]
call fcn.00572b50
test al, al
je 0x57d699
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
push eax
push ecx
call dword [sym.imp.USER32.dll_WindowFromPoint]
test eax, eax
je 0x57d699
push eax
call fcn.005d9cca
test eax, eax
je 0x57d699
push eax
push 0x656e08
call fcn.005dda86
mov edi, eax
xor ebx, ebx
add esp, 8
cmp edi, ebx
je 0x57d699
mov ecx, edi
call fcn.00583db0
test al, al
je 0x57d699
mov ecx, edi
call fcn.00583cb0
mov ecx, edi
mov dword [esi + 8], eax
call fcn.00583da0
mov edi, eax
cmp edi, ebx
je 0x57d61c
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x57d611
push edi
call fcn.005d9cca
mov ebp, eax
cmp ebp, ebx
je 0x57d61c
mov eax, dword [esi + 8]
cmp eax, 0x1a
jne 0x57d5e0
push ebp
push 0x6575b0
call fcn.005dda86
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x57d5b1
mov ecx, dword [esi + 0x24]
push edi
mov edx, dword [ecx]
call dword [edx + 0x19c]
test al, al
je 0x57d611
mov ecx, dword [edi + 0x160]
lea eax, [esp + 0x54]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
add eax, edx
cdq
sub eax, edx
lea ebx, [ecx + 2]
mov ebp, eax
push 0
push edi
mov ecx, esi
sar ebp, 1
call fcn.0057b7f0
add edi, 0x144
test edi, edi
je 0x57d574
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x57d574
test edi, edi
jne 0x57d53f
xor eax, eax
jmp 0x57d542
mov eax, dword [edi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x57d574
mov ecx, edi
call fcn.005dcc64
shr eax, 0x1c
and al, 1
test al, al
je 0x57d574
push ebp
push ebx
mov ecx, esi
mov dword [esi + 8], 0x1e
call fcn.0057b920
xor ebx, ebx
jmp 0x57d61c
lea edx, [esp + 0x14]
lea eax, [esp + 0x6c]
push edx
push eax
mov dword [esi + 8], 0x1a
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
xor ebx, ebx
mov dword [ecx], edx
mov edx, dword [esp + 0x74]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x78]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x57d61c
push ebp
push 0x656a40
call fcn.005dda86
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x57d611
mov ecx, dword [esi + 0x24]
push edi
mov edx, dword [ecx]
call dword [edx + 0x19c]
test al, al
je 0x57d611
push ebx
push edi
mov ecx, esi
call fcn.0057b7f0
jmp 0x57d61c
cmp eax, 0x16
je 0x57d5f4
cmp eax, 0x17
je 0x57d5f4
cmp eax, 0x18
je 0x57d5f4
cmp eax, 0x19
jne 0x57d61c
push ebp
push 0x656a40
call fcn.005dda86
add esp, 8
cmp eax, ebx
je 0x57d611
push ebx
push eax
mov ecx, esi
call fcn.0057b7f0
jmp 0x57d61c
mov dword [esi + 8], ebx
mov byte [esp + 0xe4], 1
cmp dword [esi + 8], ebx
jne 0x57eeb0
jmp 0x57d699
test al, al
jne 0x57d699
mov ecx, dword [esi + 0x24]
call fcn.00572b50
test al, al
je 0x57d699
mov ecx, dword [esi + 0x24]
push 0x659388
call fcn.005dda74
test eax, eax
jne 0x57d64c
test bl, bl
jne 0x57d699
mov ecx, dword [esi + 0x24]
call fcn.005db2b7
mov edi, eax
push 0x63b020
mov ecx, edi
call fcn.005dda74
test eax, eax
je 0x57d699
mov ecx, dword [edi + 0x1c]
lea eax, [esp + 0x6c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x57d699
mov byte [esp + 0x13], 1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
jne 0x57ed11
mov al, byte [esp + 0x13]
test al, al
jne 0x57ed11
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
call dword [edx + 0x198]
test al, al
mov byte [esp + 0x4b], al
je 0x57e542
xor ebp, ebp
mov dword [esp + 0x7c], vtable.CArray_class_CExtControlBar___class_CExtControlBar__.0
mov dword [esp + 0x80], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebp
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
push eax
push ecx
lea edx, [esp + 0x84]
push 0x8584
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xe4], ebp
cmp edx, 1
sete al
push eax
call fcn.00571c30
mov edi, dword [esp + 0x84]
xor ecx, ecx
cmp edi, ebp
jle 0x57dd36
mov ebx, dword [esi + 0x24]
mov edx, dword [esp + 0x80]
mov eax, dword [edx]
cmp eax, ebx
jne 0x57d75b
inc ecx
add edx, 4
cmp ecx, edi
jl 0x57d748
jmp 0x57dd38
cmp eax, ebp
je 0x57dd38
push ebp
push eax
mov ecx, esi
call fcn.0057b7f0
mov ecx, dword [esi + 0x28]
call fcn.005db2b7
mov edx, dword [eax + 0x1c]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
call dword [eax + 0x110]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x90], eax
mov edx, dword [ecx]
call dword [edx + 0x114]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x28]
mov edi, dword [eax + 0x70]
mov eax, dword [ecx + 0x68]
test ah, 0xf0
je 0x57dd36
mov bl, byte [esi + 4]
mov edx, dword [esi + 0x28]
and bl, 0xfd
push 0x659220
mov byte [esi + 4], bl
mov ecx, dword [edx + 0x70]
call fcn.005dda74
test eax, eax
je 0x57d7e2
mov ecx, dword [esi + 0x28]
call fcn.00572b50
test al, al
je 0x57d7e6
or byte [esi + 4], 2
mov ecx, dword [edi + 0x1c]
lea eax, [esp + 0x54]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, ebx
mov ecx, eax
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
sub eax, edx
mov dword [esp + 0x24], edi
cdq
sub eax, edx
mov edx, ebp
sar eax, 1
mov dword [esp + 0x4c], eax
mov eax, edi
sub edx, eax
mov eax, dword [esp + 0x64]
cmp edx, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ecx
jl 0x57da6b
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
cmp eax, edx
jl 0x57da6b
cmp eax, dword [esp + 0x50]
jl 0x57da6b
mov ecx, dword [esi + 0x28]
push 0x6575b0
call fcn.005dda74
test eax, eax
je 0x57d8a3
mov edi, dword [esi + 0x28]
add edi, 0x144
test edi, edi
je 0x57d8a3
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x57d8a3
test edi, edi
jne 0x57d87d
xor eax, eax
jmp 0x57d880
mov eax, dword [edi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x57d8a3
mov ecx, edi
call fcn.005dcc64
shr eax, 0x1c
and al, 1
mov dword [esp + 0x4c], 1
test al, al
jne 0x57d8ab
mov dword [esp + 0x4c], 0
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
push edx
xor edi, edi
mov eax, dword [ecx]
call dword [eax + 0x19c]
test al, al
je 0x57d936
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x24]
push edx
mov eax, dword [ecx]
call dword [eax + 0x19c]
test al, al
je 0x57d936
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0xe0]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
add eax, 0x20
mov dword [esp + 0x30], edx
mov dword [esp + 0x30], eax
push ebp
lea eax, [esp + 0x28]
push ebx
push eax
mov byte [esp + 0x1f], 1
mov dword [esp + 0x38], ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57db4a
mov edi, 0x20
lea ecx, [esp + 0x24]
push edi
push eax
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
jmp 0x57d970
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x28], eax
add eax, 0x20
mov dword [esp + 0x30], edx
mov byte [esp + 0x13], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
push edx
mov eax, dword [ecx]
call dword [eax + 0x1a0]
test al, al
je 0x57db70
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x24]
push edx
mov eax, dword [ecx]
call dword [eax + 0x1a0]
test al, al
je 0x57db70
push ebp
lea eax, [esp + 0x28]
push ebx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57db81
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x30], eax
test dl, dl
je 0x57da1d
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x57da1d
mov eax, dword [esi + 0x28]
lea ecx, [esp + 0x6c]
push ecx
mov edx, dword [eax + 0x160]
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
push ebp
lea eax, [esp + 0x70]
push ebx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57dbdd
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x70]
sub ecx, eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
sub eax, ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
add eax, 0xffffffe0
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
push ebp
lea eax, [esp + 0x28]
push ebx
push eax
mov dword [esp + 0x38], edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57dc00
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
sub eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x20]
sar eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
sub edx, eax
mov eax, dword [esp + 0x68]
cmp edx, eax
jl 0x57dcd0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
cmp eax, edx
jl 0x57dcd0
cmp eax, dword [esp + 0x90]
jl 0x57dcd0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [sym.imp.USER32.dll_PtInRect]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
push edi
lea edx, [esp + 0x28]
add eax, 0x20
push ebx
push edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
call ebp
test eax, eax
jne 0x57dc4c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
add eax, 0xffffffe0
push edi
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push ebx
push eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], edx
call ebp
test eax, eax
jne 0x57dc8e
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
jmp 0x57dcd0
mov edx, dword [esp + 0x4c]
xor ecx, ecx
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test edx, edx
setne cl
add ecx, 0x1b
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x20]
jmp 0x57dcd0
mov dword [esi + 8], 0
mov byte [esp + 0xe4], 1
jmp 0x57db35
neg edi
push edi
lea edx, [esp + 0x28]
push 0
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov dl, byte [esi + 4]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
or dl, 2
sub eax, ecx
mov byte [esi + 4], dl
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
cdq
sub eax, edx
mov dword [esi + 8], 1
mov ecx, eax
mov eax, dword [esp + 0x54]
sar ecx, 1
add ecx, ebx
cmp edi, eax
jl 0x57dbc6
mov edi, eax
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
cmp ebp, eax
jg 0x57dcd0
mov ebp, eax
jmp 0x57dcd0
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
push eax
push ecx
mov ecx, esi
mov dword [esi + 8], 0x1d
call fcn.0057b920
jmp 0x57db35
mov dl, byte [esi + 4]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
or dl, 2
sub eax, ecx
mov ecx, dword [esp + 0x30]
mov byte [esi + 4], dl
mov edi, dword [esp + 0x24]
cdq
sub eax, edx
mov ebx, ecx
sar eax, 1
sub ebx, eax
mov eax, dword [esp + 0x54]
cmp edi, eax
mov dword [esi + 8], 2
jl 0x57dc35
mov edi, eax
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
cmp ebp, eax
jg 0x57dcd0
mov ebp, eax
jmp 0x57dcd0
mov al, byte [esi + 4]
mov ebp, dword [esp + 0x14]
or al, 2
mov edi, dword [esp + 0x24]
mov byte [esi + 4], al
mov eax, dword [esp + 0x1c]
sub eax, ebp
mov ebx, dword [esp + 0x28]
cdq
sub eax, edx
mov dword [esi + 8], 3
mov ebp, eax
mov eax, dword [esp + 0x58]
sar ebp, 1
add ebp, edi
cmp ebx, eax
jl 0x57dc80
mov ebx, eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
cmp ecx, eax
jg 0x57dcd0
jmp 0x57dcce
mov al, byte [esi + 4]
mov ebp, dword [esp + 0x14]
or al, 2
mov ebx, dword [esp + 0x28]
mov byte [esi + 4], al
mov eax, dword [esp + 0x1c]
sub eax, ebp
mov ebp, dword [esp + 0x2c]
cdq
sub eax, edx
mov edi, ebp
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x58]
cmp ebx, eax
mov dword [esi + 8], 4
jl 0x57dcc2
mov ebx, eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
cmp ecx, eax
jg 0x57dcd0
mov ecx, eax
mov eax, dword [esi + 8]
test eax, eax
je 0x57dd36
mov dl, byte [esi + 4]
test dl, 2
je 0x57dcf9
cmp eax, 0x1b
je 0x57dcf3
cmp eax, 0x1c
je 0x57dcf3
cmp eax, 0x1d
je 0x57dcf3
cmp eax, 0x1e
jne 0x57dcf9
and dl, 0xfd
mov byte [esi + 4], dl
mov eax, dword [esp + 0x64]
mov edx, ebp
sub edx, edi
cmp edx, eax
jge 0x57dd0c
mov dword [esi + 8], 0
mov edx, dword [esp + 0x68]
mov eax, ecx
sub eax, ebx
cmp eax, edx
jge 0x57dd1f
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x57dd36
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ecx
xor ebp, ebp
mov dword [esp + 0x7c], vtable.CArray_class_CExtControlBar___class_CExtControlBar__.0
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd4], 1
cmp eax, ebp
je 0x57dd5f
push eax
call fcn.005dd7a4
add esp, 4
mov eax, dword [esi + 8]
mov dword [esp + 0xd4], 0xffffffff
cmp eax, ebp
jne 0x57e542
mov al, byte [esp + 0xe4]
test al, al
jne 0x57e542
xor eax, eax
lea ebx, [esp + 0xbc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov ebp, 0x656d68
mov edi, dword [ebp]
mov ecx, dword [esp + 0x38]
push edi
call fcn.005efc48
mov dword [ebx], eax
add eax, 0xb4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x78], eax
lea eax, [edi - 0xe81b]
cmp eax, 3
ja case.default.0x57ddd4
jmp dword [eax*4 + 0x57eecc]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0x2c]
add ebp, 8
add ebx, 4
cmp ebp, 0x656d88
jl 0x57dda2
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
push 0xc
lea ecx, [esp + 0xa0]
push 0xc
push ecx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebp
call dword [sym.imp.USER32.dll_InflateRect]
cmp ebx, edi
jge 0x57e06c
cmp dword [esp + 0x28], ebp
jge 0x57e06c
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
push edx
lea ecx, [esp + 0xa0]
push eax
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x57e06c
mov eax, 0x656d68
mov dword [esp + 0x4c], eax
jmp 0x57de97
mov edx, dword [esp + 0x70]
mov dword [esp + 0x30], edx
jmp case.default.0x57ddd4
mov dword [esp + 0x24], edx
jmp case.default.0x57ddd4
mov edi, ecx
mov dword [esp + 0x2c], edi
jmp 0x57dde7
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 0x24]
mov ecx, dword [eax + 4]
test dword [edx + 0x68], ecx
je 0x57e05a
mov eax, dword [eax]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xa8]
add eax, 0xffff17e5
cmp eax, 3
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
ja case.default.0x57dee2
jmp dword [eax*4 + 0x57eedc]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
add eax, 0x10
mov dword [esp + 0x60], eax
push ecx
lea eax, [esp + 0x58]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57dee2
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x24]
mov dword [esi + 8], 9
mov dword [esi + 0x10], 1
mov dword [esp + 0x18], eax
mov edx, dword [ecx + 0xa4]
add edx, eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edi
jmp case.default.0x57dee2
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
add edx, 0xfffffff0
push eax
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x58]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57dee2
mov eax, dword [esi + 0x24]
mov dword [esi + 8], 0xa
mov dword [esi + 0x10], 1
mov dword [esp + 0x20], ebp
mov edx, dword [eax + 0xa4]
mov ecx, ebp
sub ecx, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edi
jmp case.default.0x57dee2
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
add edx, 0x10
mov dword [esp + 0x5c], edx
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57dee2
mov eax, dword [esi + 0x24]
mov dword [esi + 8], 0xb
mov dword [esi + 0x10], 1
mov dword [esp + 0x14], ebx
mov ecx, dword [eax + 0xa8]
add ecx, ebx
mov dword [esp + 0x1c], ecx
jmp 0x57e03f
mov eax, dword [esp + 0xe0]
add ecx, 0xfffffff0
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xdc]
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57dee2
mov eax, dword [esi + 0x24]
mov dword [esi + 8], 0xc
mov dword [esi + 0x10], 1
mov dword [esp + 0x1c], edi
mov edx, dword [eax + 0xa8]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], edx
mov eax, dword [esi + 8]
test eax, eax
jne 0x57e542
mov eax, dword [esp + 0x4c]
add eax, 8
cmp eax, 0x656d88
mov dword [esp + 0x4c], eax
jl 0x57de93
mov eax, dword [esi + 8]
test eax, eax
jne 0x57e542
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xb8]
push 0x20
lea ecx, [esp + 0x70]
push 0x20
push ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
call dword [sym.imp.USER32.dll_InflateRect]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x57e542
mov edi, dword [esp + 0x38]
lea edx, [esp + 0x24]
push edx
mov eax, dword [edi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x24]
push 1
lea edx, [esp + 0x28]
push ecx
push edx
push 1
push 0xe900
push 0xffff
push 0
push edi
call fcn.00582090
add esp, 0x20
lea eax, [esp + 0x24]
mov ecx, edi
push eax
call fcn.005e0f44
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jge 0x57e542
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp edx, eax
jge 0x57e542
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x57e542
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
sub eax, edx
push 4
push 3
push eax
sub edi, ebx
call ebp
push 4
push 3
push edi
mov dword [esp + 0x44], eax
call ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x24]
lea edx, [esp + 0xbc]
mov dword [esp + 0x4c], 0x656d68
mov ecx, dword [eax + 0x70]
mov dword [esp + 0x50], edx
mov ebx, dword [ecx + 0xa8]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x24]
mov eax, dword [eax + 4]
mov edx, dword [ecx + 0x68]
test eax, edx
je 0x57e521
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov edi, dword [eax]
mov al, byte [esp + 0x37]
mov ebp, dword [edx]
test al, al
je 0x57e223
call fcn.00572b10
test al, al
je 0x57e223
mov ecx, dword [esi + 0x24]
cmp edi, dword [ecx + 0x70]
jne 0x57e223
mov eax, dword [edi + 0x1c]
lea edx, [esp + 0x7c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
push ecx
lea eax, [esp + 0x80]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57e604
jmp 0x57e521
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x57e245
mov edi, eax
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x57e245
mov edi, eax
mov eax, dword [edi + 0xb0]
test eax, eax
jne 0x57e239
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x30]
lea eax, [ebp - 0xe81b]
mov dword [esp + 0x58], edx
cmp eax, 3
mov dword [esp + 0x60], ecx
ja case.default.0x57e274
jmp dword [eax*4 + 0x57eeec]
mov ecx, dword [esp + 0xe0]
add edx, 0xc
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xdc]
push ecx
lea eax, [esp + 0x58]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57e274
mov dword [esi + 8], 5
mov eax, dword [edi + 0xa8]
lea ecx, [ebx + 2]
mov dword [esi + 0x10], eax
cmp eax, ecx
jbe 0x57e2f0
push 1
push 0xe81c
mov ecx, edi
call fcn.0059be60
push 1
push 0xe81d
mov ecx, edi
mov ebp, eax
call fcn.0059be60
mov ecx, ebp
call fcn.0059c9c0
test al, al
je 0x57e2f0
mov ecx, ebp
call fcn.0059c9c0
test al, al
jne 0x57e2f3
inc dword [esi + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0xa4]
cmp eax, ecx
jl 0x57e30e
mov eax, ecx
add eax, edx
mov dword [esp + 0x20], eax
jmp 0x57e3b2
mov eax, dword [esp + 0xe0]
add ecx, 0xfffffff4
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xdc]
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57e274
mov dword [esi + 8], 6
mov eax, dword [edi + 0xa8]
lea ecx, [ebx + 2]
mov dword [esi + 0x10], eax
cmp eax, ecx
jbe 0x57e38e
push 1
push 0xe81c
mov ecx, edi
call fcn.0059be60
push 1
push 0xe81d
mov ecx, edi
mov ebp, eax
call fcn.0059be60
mov ecx, ebp
call fcn.0059c9c0
test al, al
je 0x57e38e
mov ecx, ebp
call fcn.0059c9c0
test al, al
jne 0x57e391
inc dword [esi + 0x10]
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0xa4]
cmp eax, ecx
jl 0x57e3ac
mov eax, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
jmp case.default.0x57e274
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
add eax, 0xc
mov dword [esp + 0x5c], eax
push ecx
lea eax, [esp + 0x58]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57e274
mov dword [esi + 8], 7
mov eax, dword [edi + 0xa8]
lea ecx, [ebx + 2]
mov dword [esi + 0x10], eax
cmp eax, ecx
jbe 0x57e442
push 1
push 0xe81b
mov ecx, edi
call fcn.0059be60
push 1
push 0xe81e
mov ecx, edi
mov ebp, eax
call fcn.0059be60
mov ecx, ebp
mov edi, eax
call fcn.0059c9c0
test al, al
je 0x57e442
mov ecx, edi
call fcn.0059c9c0
test al, al
jne 0x57e445
inc dword [esi + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov eax, dword [eax + 0xa8]
cmp eax, ecx
jl 0x57e460
mov eax, ecx
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x57e50a
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
add eax, 0xfffffff4
mov dword [esp + 0x54], eax
push ecx
lea eax, [esp + 0x58]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je case.default.0x57e274
mov dword [esi + 8], 8
mov eax, dword [edi + 0xa8]
lea ecx, [ebx + 2]
mov dword [esi + 0x10], eax
cmp eax, ecx
jbe 0x57e4e6
push 1
push 0xe81b
mov ecx, edi
call fcn.0059be60
push 1
push 0xe81e
mov ecx, edi
mov ebp, eax
call fcn.0059be60
mov ecx, ebp
mov edi, eax
call fcn.0059c9c0
test al, al
je 0x57e4e6
mov ecx, edi
call fcn.0059c9c0
test al, al
jne 0x57e4e9
inc dword [esi + 0x10]
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + 0xa8]
cmp eax, ecx
jl 0x57e504
mov eax, ecx
sub edx, eax
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 8]
test eax, eax
jne 0x57e542
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
add eax, 8
add edx, 4
cmp eax, 0x656d88
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
jl 0x57e1af
mov eax, dword [esi + 8]
xor edi, edi
cmp eax, edi
jne 0x57ed11
mov al, byte [esp + 0xe4]
test al, al
jne 0x57ed11
mov dword [esp + 0x7c], vtable.CArray_class_CExtControlBar___class_CExtControlBar__.0
mov dword [esp + 0x80], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], edi
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
push eax
push ecx
lea edx, [esp + 0x84]
push 0x857c
mov ecx, dword [esi + 0x24]
push edx
mov edx, dword [esp + 0xa4]
mov ebx, 1
cmp edx, ebx
mov dword [esp + 0xe4], 2
sete al
push eax
call fcn.00571c30
cmp dword [esp + 0x84], ebx
jne 0x57ecdf
mov ecx, dword [esp + 0x80]
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
lea edx, [esp + 0x14]
mov eax, dword [ecx]
push edx
mov dword [esi + 0x28], eax
mov eax, dword [eax + 0x1c]
push eax
call ebx
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
cmp ecx, eax
jne 0x57e610
mov dword [esi + 8], 0xd
jmp 0x57ecdf
mov dword [esi + 8], 0xd
jmp 0x57eeb0
mov al, byte [esp + 0x4b]
mov dword [esi + 8], edi
test al, al
jne 0x57e62d
mov edx, dword [esi + 0x28]
mov eax, dword [edx + 0x70]
cmp dword [eax + 0xa8], edi
ja 0x57ecdf
mov ecx, dword [esi + 0x28]
cmp ecx, edi
je 0x57ecdf
mov eax, dword [ecx]
call dword [eax + 0x110]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x90], eax
mov edx, dword [ecx]
call dword [edx + 0x114]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x50], eax
call fcn.005729a0
cmp eax, 0xe81f
jne 0x57e66c
mov eax, 0xe81b
jmp 0x57e67f
cmp eax, 0xe81b
je 0x57e67f
cmp eax, 0xe81e
mov byte [esp + 0x13], 0
jne 0x57e684
mov byte [esp + 0x13], 1
mov ecx, dword [esi + 0x28]
cmp eax, 0xe81c
mov edi, dword [ecx + 0x70]
jne 0x57e6a1
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x68]
test ah, 0x10
jne 0x57e6e5
jmp 0x57ecdf
cmp eax, 0xe81d
jne 0x57e6b8
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x68]
test ch, 0x40
jne 0x57e6e5
jmp 0x57ecdf
cmp eax, 0xe81b
jne 0x57e6cf
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x68]
test ah, 0x20
jne 0x57e6e5
jmp 0x57ecdf
cmp eax, 0xe81e
jne 0x57e6e5
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x68]
test ah, 0x80
je 0x57ecdf
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x68]
test ch, 0xf0
je 0x57ecdf
mov al, byte [esi + 4]
mov ecx, dword [esi + 0x28]
and al, 0xfd
push 0x659220
mov byte [esi + 4], al
mov ecx, dword [ecx + 0x70]
call fcn.005dda74
test eax, eax
je 0x57e71c
mov ecx, dword [esi + 0x28]
call fcn.00572b50
test al, al
je 0x57e720
or byte [esi + 4], 2
mov eax, dword [edi + 0x1c]
lea edx, [esp + 0x54]
push edx
push eax
call ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ebx, ecx
sub ebx, eax
mov dword [esp + 0x38], eax
cmp ebx, ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
jl 0x57e98b
mov ebp, dword [esp + 0x68]
mov ebx, 0x40
cmp ebp, ebx
jg 0x57e98b
cmp dword [esp + 0x50], ebx
jg 0x57e98b
mov ecx, dword [esi + 0x28]
push 0x6575b0
call fcn.005dda74
test eax, eax
je 0x57e7c9
mov eax, dword [esi + 0x28]
lea edi, [eax + 0x144]
test edi, edi
je 0x57e7c9
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x57e7c9
test edi, edi
jne 0x57e7a3
xor eax, eax
jmp 0x57e7a6
mov eax, dword [edi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x57e7c9
mov ecx, edi
call fcn.005dcc64
shr eax, 0x1c
and al, 1
mov dword [esp + 0x50], 1
test al, al
jne 0x57e7d1
mov dword [esp + 0x50], 0
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
push eax
xor edi, edi
mov edx, dword [ecx]
call dword [edx + 0x19c]
test al, al
je 0x57e85c
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
push eax
mov edx, dword [ecx]
call dword [edx + 0x19c]
test al, al
je 0x57e85c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0xe0]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
push ebp
lea edx, [esp + 0x3c]
add eax, 0x20
push ebx
mov dword [esp + 0x4c], ecx
push edx
mov byte [esp + 0x57], 1
mov dword [esp + 0x50], eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57ea5e
mov edi, 0x20
push edi
push eax
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
jmp 0x57e896
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
add eax, 0x20
mov dword [esp + 0x44], ecx
mov byte [esp + 0x4b], 0
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
push ebp
lea edx, [esp + 0x3c]
push ebx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x57e8bf
mov al, byte [esp + 0x37]
test al, al
je 0x57ea94
mov al, byte [esp + 0x13]
test al, al
je 0x57ea94
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], edx
mov dl, byte [esp + 0x4b]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov dword [esp + 0x44], eax
test dl, dl
je 0x57e929
mov edx, dword [esp + 0x50]
test edx, edx
je 0x57e929
mov eax, dword [esi + 0x28]
lea ecx, [esp + 0x6c]
push ecx
mov edx, dword [eax + 0x160]
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
push ebp
lea eax, [esp + 0x70]
push ebx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x57eb0c
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x70]
sub ecx, eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
sub eax, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], eax
add eax, 0xffffffe0
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
push ebp
lea eax, [esp + 0x3c]
push ebx
push eax
mov dword [esp + 0x4c], edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x57e97b
mov al, byte [esp + 0x37]
test al, al
je 0x57eb21
mov al, byte [esp + 0x13]
test al, al
je 0x57eb21
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x68]
mov ebx, edx
sub ebx, edi
cmp ebx, ebp
jl 0x57ec3b
mov ebp, dword [esp + 0x64]
mov ebx, 0x40
cmp ebp, ebx
jg 0x57ec3b
cmp dword [esp + 0x90], ebx
jg 0x57ec3b
mov ebx, dword [esp + 0xdc]
mov ebp, dword [sym.imp.USER32.dll_PtInRect]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], eax
push edi
lea ecx, [esp + 0x3c]
add eax, 0x20
push ebx
push ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], eax
call ebp
test eax, eax
je 0x57ea09
mov al, byte [esp + 0x37]
test al, al
je 0x57eb8c
mov al, byte [esp + 0x13]
test al, al
jne 0x57eb8c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
push edi
lea edx, [esp + 0x3c]
add eax, 0xffffffe0
push ebx
push edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], eax
call ebp
test eax, eax
je 0x57ec3b
mov al, byte [esp + 0x37]
test al, al
je 0x57ebe1
mov al, byte [esp + 0x13]
test al, al
jne 0x57ebe1
jmp 0x57ec3b
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
test edx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
setne al
add eax, 0x1b
mov dword [esp + 0x3c], edx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
jmp 0x57ec3b
neg edi
push edi
lea edx, [esp + 0x3c]
push 0
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov al, byte [esi + 4]
mov ebp, dword [esp + 0x18]
or al, 2
mov dword [esi + 8], 1
mov byte [esi + 4], al
mov cl, al
mov eax, dword [esp + 0x20]
sub eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 1
add eax, edx
mov dword [esp + 0x44], eax
mov al, byte [esp + 0x13]
test al, al
je 0x57ec3b
test cl, 2
jne 0x57ec3b
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jl 0x57eaf3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jg 0x57ec3b
mov dword [esp + 0x40], eax
jmp 0x57ec3b
push ebp
push ebx
mov ecx, esi
mov dword [esi + 8], 0x1d
call fcn.0057b920
jmp 0x57ec3b
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub eax, edx
mov bl, byte [esi + 4]
cdq
sub eax, edx
or bl, 2
mov edx, eax
mov eax, dword [esp + 0x44]
sar edx, 1
sub eax, edx
mov byte [esi + 4], bl
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x13]
test al, al
mov cl, bl
mov dword [esi + 8], 2
je 0x57ec3b
test cl, 2
jne 0x57ec3b
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jl 0x57eb73
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jg 0x57ec3b
mov dword [esp + 0x40], eax
jmp 0x57ec3b
mov al, byte [esi + 4]
mov ebp, dword [esp + 0x14]
or al, 2
mov dword [esi + 8], 3
mov byte [esi + 4], al
mov cl, al
mov eax, dword [esp + 0x1c]
sub eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar eax, 1
add eax, edx
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x13]
test al, al
jne 0x57ec3b
test cl, 2
jne 0x57ec3b
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jl 0x57ebd3
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jg 0x57ec3b
jmp 0x57ec37
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
sub eax, edx
mov bl, byte [esi + 4]
cdq
sub eax, edx
or bl, 2
mov edx, eax
mov eax, dword [esp + 0x40]
sar edx, 1
sub eax, edx
mov byte [esi + 4], bl
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x13]
test al, al
mov cl, bl
mov dword [esi + 8], 4
jne 0x57ec3b
test cl, 2
jne 0x57ec3b
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jl 0x57ec2b
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jg 0x57ec3b
mov dword [esp + 0x44], eax
mov cl, byte [esi + 4]
test cl, 2
je 0x57ec80
mov eax, dword [esi + 8]
cmp eax, 0x1b
je 0x57ec5a
cmp eax, 0x1c
je 0x57ec5a
cmp eax, 0x1d
je 0x57ec5a
cmp eax, 0x1e
jne 0x57ec60
and cl, 0xfd
mov byte [esi + 4], cl
mov ecx, dword [esi + 0x28]
call fcn.00572b50
test al, al
jne 0x57ec80
mov ecx, dword [esi + 0x28]
push 0
push 0
call fcn.005781f0
test al, al
je 0x57ec80
and byte [esi + 4], 0xfd
mov ecx, dword [esi + 8]
xor eax, eax
cmp ecx, eax
je 0x57ecdf
mov cl, byte [esp + 0x13]
test cl, cl
je 0x57eca5
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x64]
sub ecx, edi
cmp ecx, edx
jge 0x57ecba
jmp 0x57ecb7
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
sub edx, edi
cmp edx, ecx
jge 0x57ecba
mov dword [esi + 8], eax
cmp dword [esi + 8], eax
je 0x57ecdf
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x7c], vtable.CArray_class_CExtControlBar___class_CExtControlBar__.0
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd4], 3
test eax, eax
je 0x57ed06
push eax
call fcn.005dd7a4
add esp, 4
mov dword [esp + 0xd4], 0xffffffff
cmp dword [esp + 0x94], 1
jne 0x57ed38
mov eax, dword [esi + 8]
test eax, eax
je 0x57ed38
cmp eax, 0x1d
je 0x57ed38
cmp eax, 0x1e
je 0x57ed38
cmp eax, 0x1c
je 0x57ed38
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
test eax, eax
jne 0x57ee7e
push 0
push 0
mov ecx, esi
call fcn.0057b7f0
mov ecx, dword [esi + 0x24]
call fcn.00572b50
mov ecx, dword [esi + 0x24]
test al, al
je 0x57ee19
call fcn.005f04f1
push eax
push 0x63aa50
call fcn.005dda86
mov edx, dword [eax + 0x1c]
add esp, 8
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.USER32.dll_OffsetRect]
neg ecx
neg eax
push ecx
push eax
lea eax, [esp + 0x1c]
push eax
call edi
mov edx, dword [esi + 0x24]
mov eax, dword [esp + 0xdc]
mov ecx, dword [edx + 0x108]
sub eax, ecx
mov edx, dword [edx + 0x10c]
mov ecx, eax
mov eax, dword [esp + 0xe0]
sub eax, edx
push eax
lea eax, [esp + 0x18]
push ecx
push eax
call edi
mov esi, dword [esi + 0x24]
mov ecx, dword [esi + 0xc4]
mov ebp, dword [esi + 0xbc]
mov edx, dword [esi + 0xc0]
mov ebx, dword [esi + 0xb8]
sub ecx, ebp
sub edx, ebx
cmp edx, ecx
jge 0x57edf7
mov ecx, dword [esi + 0xc0]
mov eax, ebx
jmp 0x57ee03
mov ecx, dword [esi + 0xc4]
mov eax, dword [esi + 0xbc]
sub ecx, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
neg eax
push eax
lea eax, [esp + 0x18]
neg ecx
push ecx
push eax
jmp 0x57ee65
mov eax, dword [ecx + 0xb0]
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0xdc]
mov ecx, dword [ecx + 0xb4]
add eax, edi
add ecx, edx
push ecx
push eax
push edx
lea edx, [esp + 0x20]
push edi
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov esi, dword [esi + 0x24]
mov edi, dword [sym.imp.USER32.dll_OffsetRect]
add esi, 0x108
mov eax, dword [esi]
mov esi, dword [esi + 4]
neg eax
neg esi
push esi
push eax
lea eax, [esp + 0x1c]
push eax
call edi
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xac]
push ecx
lea eax, [esp + 0x18]
push edx
push eax
call edi
lea ecx, [esp + 0x14]
lea edx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xc8
ret 0xc