Function at 0x406b10
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5243fd
mov eax, dword fs:[0]
push eax
sub esp, 0x248
mov eax, dword [0x570454]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.00414332
cmp byte [esi + 0x460], 0
je 0x406be7
call fcn.00415761
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x406b6e
push 0x80004005
call fcn.00401330
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x240], eax
lea ecx, [ebp - 0x240]
push ecx
lea ecx, [esi + 0x3ec]
mov dword [ebp - 4], ebx
call fcn.004114a8
push 0x550c88
push str.ExamShield_Program
lea ecx, [ebp - 0x240]
call fcn.00403780
mov edx, dword [ebp - 0x240]
push edx
lea ecx, [esi + 0x3ec]
call fcn.004134b7
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406be9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x406be9
xor ebx, ebx
lea edi, [esi + 0x180]
cmp edi, ebx
jne 0x406bf7
xor eax, eax
jmp 0x406bfa
mov eax, dword [edi + 0x20]
cmp edi, ebx
jne 0x406c06
mov dword [ebp - 0x240], ebx
jmp 0x406c0f
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x240], ecx
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [ebp - 0x240]
or eax, 8
push eax
push 0xfffffffffffffff0
push edx
call dword [sym.imp.USER32.dll_SetWindowLongW]
cmp edi, ebx
jne 0x406c33
xor edi, edi
jmp 0x406c36
mov edi, dword [edi + 0x20]
push 0x64
push 1
push 0x40a
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 0x2e4]
mov edi, dword [ecx - 0x10]
cmp dword [ecx - 0xc], ebx
lea eax, [ecx - 0x10]
je 0x406ca6
cmp dword [eax + 0xc], ebx
lea edx, [eax + 0xc]
jge 0x406c7e
cmp dword [ecx - 8], ebx
jge 0x406c6e
push 0x80070057
call fcn.00401330
mov dword [ecx - 0xc], ebx
mov eax, dword [esi + 0x2e4]
xor ecx, ecx
mov word [eax], cx
jmp 0x406ca6
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406c94
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
add eax, 0x10
mov dword [esi + 0x2e4], eax
mov eax, dword [esi + 0xc4]
push ebx
lea ecx, [ebp - 0x23c]
push ecx
or edi, 0xffffffff
push eax
mov dword [esi + 0x2f8], edi
mov dword [esi + 0x2f0], ebx
mov dword [esi + 0x2f4], ebx
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x228], ebx
call fcn.00418b7d
cmp eax, ebx
je 0x406dbe
mov edx, dword [esi + 0x108]
or edx, dword [esi + 0x10c]
jne 0x406dbe
cmp dword [esi + 0xf0], ebx
je 0x406dbe
call fcn.00415761
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x406d33
push 0x80004005
call fcn.00401330
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x240], eax
mov dword [ebp - 4], 1
mov eax, dword [esi + 0xc4]
push eax
push 0x82
lea ecx, [ebp - 0x240]
push ecx
call fcn.004191c8
mov edx, dword [ebp - 0x240]
push ebx
push 4
push edx
call fcn.00414bad
cmp eax, 6
je 0x406d9c
push 2
mov ecx, esi
call fcn.00413f8d
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jmp 0x4070b3
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x406dbe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00415761
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x406dd8
push 0x80004005
call fcn.00401330
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x244], eax
mov dword [ebp - 4], 2
call fcn.00415761
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x406e0b
push 0x80004005
call fcn.00401330
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x248], eax
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp - 0x244]
push edx
lea ecx, [ebp - 0x248]
push ecx
mov byte [ebp - 4], 3
mov eax, dword [esi + 0xc0]
lea edi, [esi + 0xc0]
lea ebx, [esi + 0x124]
push ebx
push eax
call fcn.00419513
test eax, eax
jne 0x406eca
push edi
lea edx, [ebp - 0x240]
push str.http:__
push edx
call fcn.00404060
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.00404260
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406e9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [edi]
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp - 0x244]
push edx
lea eax, [ebp - 0x248]
push eax
push ebx
push edi
call fcn.00419513
test eax, eax
jne 0x406eca
push 2
mov ecx, esi
call fcn.00413f8d
jmp 0x407070
mov ecx, dword [ebp - 0x244]
push 0x2f
push ecx
call fcn.00500dba
mov edx, dword [ebp - 0x244]
add esp, 8
test eax, eax
je 0x406ef0
sub eax, edx
sar eax, 1
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x406f10
push 0x5c
push edx
call fcn.00500dba
add esp, 8
test eax, eax
je 0x406f69
mov edx, dword [ebp - 0x244]
sub eax, edx
sar eax, 1
mov ecx, eax
cmp ecx, 0xffffffff
je 0x406f69
cmp dword [edx - 0xc], 1
jle 0x406f69
mov eax, dword [edx - 0xc]
sub eax, ecx
dec eax
push eax
lea edx, [ebp - 0x254]
push edx
lea ecx, [ebp - 0x244]
call fcn.00403ad0
lea edi, [esi + 0x2e0]
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.00404260
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406f7d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x406f7d
lea ecx, [ebp - 0x244]
lea edi, [esi + 0x2e0]
push ecx
mov ecx, edi
call fcn.00404260
mov edx, dword [esi + 0x2dc]
cmp dword [edx - 0xc], 0
lea eax, [esi + 0x2dc]
jle 0x406f97
push eax
mov ecx, edi
call fcn.00404260
call fcn.00415761
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406fb1
push 0x80004005
call fcn.00401330
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x24c], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x248]
mov edi, dword [edi]
push ecx
push edi
push 0x66
lea edx, [ebp - 0x24c]
push edx
call fcn.004191e2
mov eax, dword [ebp - 0x24c]
push eax
lea ecx, [esi + 0x1f4]
call fcn.004134b7
push 0
push 4
push 0
push 0
push esi
push 0x402000
call fcn.0041a073
mov dword [esi + 0x2ec], eax
test eax, eax
jne 0x407033
push 2
mov ecx, esi
call fcn.00413f8d
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x407064
mov dword [eax + 0x28], 0
mov esi, dword [esi + 0x2ec]
mov ecx, dword [esi + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407070
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407096
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4070bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00500836
mov esp, ebp
pop ebp
ret