Function at 0x5ea93c
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff84
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0x1c], 0
jne 0x5ea993
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xd4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xd0]
mov dword [ebp - 0x10], eax
jmp 0x5eab24
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
call fcn.005ffa54
imul dword [ebp - 4]
add eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x18]
call fcn.0041e508
test eax, eax
je 0x5eaa09
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x18]
call fcn.0041e508
mov eax, dword [eax + 0x134]
mov edx, dword [ebp + 0x30]
mov edx, dword [edx - 0x20]
add edx, edx
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x18]
call fcn.0041e508
mov eax, dword [eax + 0x130]
mov edx, dword [ebp + 0x30]
mov edx, dword [edx - 0x1c]
add edx, edx
add eax, edx
mov dword [ebp - 0x10], eax
jmp 0x5eaa94
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x20]
add eax, eax
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + 0xc0]
dec edi
test edi, edi
jle 0x5eaa46
mov esi, 1
mov edx, dword [ebp - 4]
add edx, esi
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 8]
call fcn.005b60c8
add eax, ebx
add dword [ebp - 0x14], eax
inc esi
dec edi
jne 0x5eaa2a
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 8]
call fcn.005b60c8
mov edx, dword [ebp + 0x30]
mov edx, dword [edx - 0x1c]
add edx, edx
add eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + 0xc4]
dec edi
test edi, edi
jle 0x5eaa94
mov esi, 1
mov edx, dword [ebp - 8]
add edx, esi
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 4]
call fcn.005b60c8
add eax, dword [ebp + 0x28]
add dword [ebp - 0x10], eax
inc esi
dec edi
jne 0x5eaa77
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x14], 0
je 0x5eab24
cmp dword [ebp + 0x1c], 0
jl 0x5eab24
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp + 0x1c]
call fcn.005b60c8
mov edx, dword [ebp - 4]
sub edx, eax
add edx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x24]
add edx, dword [eax + 0xc0]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x14]
mov ebx, dword [eax + 0x10]
mov eax, dword [ebx + 8]
cmp eax, dword [ebp - 0x14]
jg 0x5eaaed
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x30]
mov eax, ebx
mov edx, dword [ebp - 0x14]
call fcn.005b60c8
mov ebx, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0x1c]
call fcn.005b60c8
sub ebx, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x18]
mov edx, dword [ebp + 0x30]
mov edx, dword [edx - 0x10]
add edx, edx
add eax, edx
sub ebx, eax
mov dword [ebp - 0x14], ebx
mov esi, 0x1fffffff
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 1
je 0x5eab6c
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
test byte [eax + 0x1c], 0x80
setne al
mov byte [ebp - 0x25], al
mov eax, dword [ebp + 0x30]
mov esi, dword [eax - 0x5c]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
or byte [eax + 0x1c], 0x80
xor ebx, ebx
jmp 0x5eabaa
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0x1c], 0
jne 0x5eab9a
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005f3254
test al, al
je 0x5eab9a
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 8
jne 0x5eab9a
xor ebx, ebx
jmp 0x5eab9c
mov bl, 1
test bl, bl
jne 0x5eaba6
mov eax, dword [ebp + 0x30]
mov esi, dword [eax - 0x5c]
mov byte [ebp - 0x25], 1
test bl, bl
jne 0x5eabbb
mov eax, dword [ebp + 0x30]
cmp dword [eax - 0x5c], 0x1fffffff
sete bl
cmp esi, 0x1fffffff
jne 0x5eabda
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
mov esi, dword [eax + 0xb0]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0x1c], 0
jne 0x5eac37
cmp esi, 0x1fffffff
jne 0x5eac37
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
cmp dword [eax + 0x160], 0
je 0x5eac37
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x54c]
cmp eax, dword [ebp - 0x24]
jne 0x5eac37
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
cmp byte [eax + 0x558], 0
je 0x5eac37
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 8
jne 0x5eac37
mov esi, 0xff000005
cmp esi, 0x1fffffff
jne 0x5eac4f
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xf0], 0
je 0x5eae96
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0x1c], 0
je 0x5eac6f
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
test byte [eax + 0xf6], 4
je 0x5eac6f
mov esi, 0xffffff
mov eax, dword [ebp + 0x30]
mov dl, byte [eax + 0x1c]
mov eax, esi
call fcn.0063c8b4
mov esi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x14]
mov edx, esi
call fcn.0042c2a4
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x10]
mov edx, esi
call fcn.0042bfc4
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x41]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
call fcn.0041ce54
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
test byte [eax + 0xf5], 4
je 0x5eacd4
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x10]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0xc]
push eax
lea eax, [ebp - 0x41]
push eax
call sub.user32.dll_InflateRect
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0x1c], 0
jne 0x5ead51
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
cmp dword [eax + 0x160], 0
je 0x5ead51
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x54c]
cmp eax, dword [ebp - 0x24]
jne 0x5ead51
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
cmp byte [eax + 0x558], 0
je 0x5ead51
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 8
jne 0x5ead51
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0xc0]
push eax
mov eax, dword [ebp + 0x24]
push eax
mov eax, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
mov ecx, esi
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x60]
xor ebx, ebx
test bl, bl
je 0x5eae67
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xf0], 0
je 0x5eae67
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
cmp dword [eax + 0x1c], 0
jne 0x5eadd2
push 0
push 0
mov eax, dword [ebp - 0x41]
push eax
mov eax, dword [ebp - 0x3d]
push eax
mov eax, dword [ebp - 0x39]
sub eax, dword [ebp - 0x41]
push eax
mov eax, dword [ebp - 0x35]
sub eax, dword [ebp - 0x3d]
push eax
push esi
push 1
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 0x20
setne al
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp + 0x30]
mov al, byte [eax - 0x49]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xf0]
lea ecx, [ebp - 0x41]
mov edx, dword [ebp + 0x14]
call fcn.00630bcc
jmp 0x5eae89
push esi
lea esi, [ebp - 0x41]
lea edi, [ebp - 0x51]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [ebp - 0x4d]
neg eax
push eax
mov eax, dword [ebp - 0x51]
neg eax
push eax
lea eax, [ebp - 0x51]
push eax
call sub.user32.dll_OffsetRect
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x51]
push eax
call sub.user32.dll_OffsetRect
lea eax, [ebp - 0x51]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x158]
push eax
push esi
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 0x10
setne al
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
call dword [edx + 0x68]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x18]
push eax
push 1
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xf0]
lea ecx, [ebp - 0x41]
mov edx, dword [ebp + 0x14]
call fcn.00630308
jmp 0x5eae89
cmp esi, 0x1fffffff
je 0x5eae89
lea ecx, [ebp - 0x41]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xd0]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.0042c3c0
cmp byte [ebp + 8], 0
je 0x5eb54d
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x8c]
test al, al
setne bl
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov esi, dword [eax + 0x1c]
test esi, esi
jne 0x5eb18a
mov eax, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 0x20]
add eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x31]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xbc]
or esi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 8
je 0x5eafa5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
cmp dword [eax + 0x160], 0
je 0x5eafa5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x550]
cmp eax, dword [ebp - 4]
jne 0x5eafa5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x554]
cmp eax, dword [ebp - 8]
jne 0x5eafa5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
call fcn.00612a38
mov esi, eax
mov eax, dword [ebp - 0x24]
call fcn.00659f28
test al, al
je 0x5eaf9b
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x1c]
add eax, eax
sub esi, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x1c]
neg eax
mov edx, dword [ebp + 0x30]
add eax, dword [edx - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x1c]
mov edx, dword [ebp + 0x30]
sub eax, dword [edx - 0x20]
mov dword [ebp - 0x20], eax
jmp 0x5eafa5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x20]
add eax, eax
sub esi, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
push eax
push 0
push esi
lea ecx, [ebp - 0x6b]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x24]
call fcn.00625cc0
xor eax, eax
push ebp
push 0x5eb183
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 8
je 0x5eb0f5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
cmp dword [eax + 0x160], 0
je 0x5eb0f5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x550]
cmp eax, dword [ebp - 4]
jne 0x5eb0f5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x554]
cmp eax, dword [ebp - 8]
jne 0x5eb0f5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x438]
mov byte [eax + 0x161], 1
xor eax, eax
push ebp
push 0x5eb0ee
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 8
setne al
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 0x20
setne al
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 0x10
setne al
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
add eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x20]
push eax
push 0
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x438]
call fcn.00659be4
dec eax
push eax
push 0
push 0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x438]
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x114]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5eb0f5
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x438]
mov byte [eax + 0x161], 0
ret
push 0
push 0
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 8
setne al
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 0x20
setne al
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x31], 0x10
setne al
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
push eax
push 0
mov eax, dword [ebp - 0x24]
call fcn.00659be4
dec eax
push eax
push 0
push 0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0x114]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5eb54d
lea ecx, [ebp - 0x6b]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x24]
call fcn.00625d70
mov al, byte [ebp - 0x31]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xc4]
ret
mov eax, dword [ebp + 0x30]
mov eax, esi
mov edx, dword [ebp - 0x18]
call fcn.0041e508
test eax, eax
je 0x5eb54d
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x18]
call fcn.0041e508
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x48]
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x120], eax
mov eax, dword [ebp - 0x2c]
cmp dword [eax + 0x114], 0
je 0x5eb1f8
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x114]
call fcn.0041fbec
cmp eax, dword [ebp + 0x18]
jl 0x5eb1f8
mov edx, dword [ebp + 0x18]
dec edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x114]
call fcn.005d7868
mov esi, dword [eax + 0x1c]
jmp 0x5eb201
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax + 0x84]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x124], eax
test bl, bl
jne 0x5eb256
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
call fcn.005e6804
mov ecx, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x20]
add eax, eax
mov edx, dword [ebp - 0x14]
sub edx, eax
mov eax, esi
call fcn.005ea178
mov edx, dword [ebp - 0x2c]
add dword [edx + 0x124], eax
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dword [eax + 0x138], edx
jmp 0x5eb2d1
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x8c]
cmp al, 2
jne 0x5eb29c
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
call fcn.005e6804
mov ecx, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x20]
add eax, eax
mov edx, dword [ebp - 0x14]
sub edx, eax
mov eax, esi
call fcn.005ea178
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x138], eax
jmp 0x5eb2d1
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
call fcn.005e6804
mov ecx, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x1c]
add eax, eax
mov edx, dword [ebp - 0x10]
sub edx, eax
mov eax, esi
call fcn.005ea178
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x138], eax
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x14], 0
je 0x5eb306
cmp dword [ebp + 0x1c], 0
jl 0x5eb306
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0x1c]
call fcn.005b60c8
mov edx, dword [ebp + 0x30]
add eax, dword [edx - 0x20]
mov edx, dword [ebp + 0x30]
add eax, dword [edx - 0x10]
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x12c], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x30], edx
mov eax, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 0x20]
add eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x31]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xbc]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x120]
mov edx, dword [ebp - 0x2c]
add eax, dword [edx + 0x128]
neg eax
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x124]
mov edx, dword [ebp - 0x2c]
add eax, dword [edx + 0x12c]
neg eax
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x1c]
add eax, eax
mov edx, dword [ebp - 0x10]
sub edx, eax
push edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 0x20]
add eax, eax
mov edx, dword [ebp - 0x14]
sub edx, eax
push edx
push esi
mov eax, dword [ebp - 0x24]
call fcn.005e6804
push eax
push 0
lea ecx, [ebp - 0x6b]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x2c]
call fcn.00625af8
xor eax, eax
push ebp
push 0x5eb546
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x7c]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
call fcn.0041ce54
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
lea esi, [ebp - 0x7c]
lea edi, [eax + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
neg eax
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
neg eax
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
add eax, 0x38
push eax
call sub.user32.dll_OffsetRect
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x158]
mov edx, eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
add eax, 0x38
call fcn.0063c234
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
mov edx, dword [eax]
call dword [edx + 0x48]
mov edx, eax
mov eax, dword [ebp - 0x2c]
call fcn.0064f6e0
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
cmp dword [eax + 0x160], 0
je 0x5eb4da
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
mov edx, dword [ebp + 0x30]
mov edx, dword [edx - 8]
mov edx, dword [edx + 0x160]
cmp eax, dword [edx + 0x54c]
jne 0x5eb4da
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0x160]
mov eax, dword [eax + 0x54c]
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x118], eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 0x10
setne al
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 0x20
setne al
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0x168]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.005e9ea0
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x118], eax
jmp 0x5eb501
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 0x10
setne al
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 0x20
setne al
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0x168]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
xor edx, edx
mov dword [eax + 0x30], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5eb54d
lea ecx, [ebp - 0x6b]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x2c]
call fcn.00625d70
mov al, byte [ebp - 0x31]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x100]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xc4]
ret
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe8]
cmp eax, 0x1fffffff
jne 0x5eb569
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0xc0]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 0xec]
cmp edx, 0x1fffffff
jne 0x5eb586
mov edx, dword [ebp + 0x30]
mov edx, dword [edx - 8]
mov edx, dword [edx + 0xd8]
mov ecx, dword [ebp + 0x30]
mov ebx, dword [ebp + 0x20]
sub ebx, dword [ecx - 0x10]
push ebx
mov ecx, dword [ebp + 0x24]
add ecx, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x30]
add ecx, dword [ebx - 0xc]
push ecx
mov ecx, dword [ebp + 0x20]
add ecx, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x30]
add ecx, dword [ebx - 0x10]
push ecx
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx - 8]
mov ecx, dword [ecx + 0xb0]
push ecx
push edx
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov eax, dword [eax + 0xac]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov al, byte [eax + 0xc9]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
test byte [eax + 0xf5], 1
setne al
xor al, 1
push eax
mov eax, dword [ebp + 0x30]
mov al, byte [eax - 0x5d]
push eax
mov eax, dword [ebp + 0x30]
test byte [eax + 0x30], 8
setne al
push eax
mov eax, dword [ebp + 0x30]
add eax, 0xffffffbf
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xd8]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 0x30]
mov al, byte [eax + 0x1c]
push eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x24]
sub ecx, dword [eax - 0xc]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x14]
call fcn.005ef2d0
cmp byte [ebp - 0x25], 0
jne 0x5eb643
mov eax, dword [ebp - 0x24]
and byte [eax + 0x1c], 0x7f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28