Function at 0x4374d0
Capabilities:
Check for peb beingdebugged flag
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a8
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [0x7e17c4], esi
mov dword [0x7d9ec8], esi
mov ecx, dword [esi + 0x3c]
add ecx, esi
mov dword [0x7da7dc], ecx
mov ebx, dword [ecx + 0x80]
mov eax, dword [ebx + esi + 0xc]
add ebx, esi
xor edx, edx
cmp eax, edx
push edi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], edx
je 0x4375b8
jmp 0x43751d
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 8]
lea edx, [eax + esi]
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.0044fad0
mov ecx, dword [ebp - 4]
mov ebx, dword [ebx + 0x10]
add ecx, eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov eax, dword [esi + edx]
add ebx, esi
add esi, edx
add esp, 8
test eax, eax
mov dword [ebp - 4], ecx
je 0x43759b
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebx]
add edx, ecx
test eax, 0x80000000
mov dword [ebp - 0x10], edx
je 0x437569
and eax, 0x7fffffff
jmp 0x437586
mov edx, dword [ebp + 8]
lea edx, [eax + edx + 2]
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.0044fad0
add esp, 8
mov ecx, dword [ebp - 4]
add ecx, eax
mov eax, dword [esi + 4]
add esi, 4
add ebx, 4
test eax, eax
mov dword [ebp - 4], ecx
jne 0x437551
mov eax, dword [ebp - 8]
add eax, 0x14
mov dword [ebp - 8], eax
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x437517
mov ecx, dword [0x7da7dc]
mov esi, dword [ebp + 8]
push ecx
call fcn.00413fd0
mov eax, dword [esi + 0x3c]
add eax, esi
xor edi, edi
mov di, word [eax + 6]
xor ecx, ecx
mov cx, word [eax + 0x14]
xor edx, edx
add esp, 4
mov dword [ebp + 8], edx
test edi, edi
lea ecx, [ecx + eax + 0x18]
jbe 0x4375f8
mov eax, 0x74786574
cmp dword [ecx + 1], eax
je 0x43768d
add ecx, 0x28
inc edx
cmp edx, edi
jb 0x4375e4
mov dword [ebp + 8], edx
mov eax, dword [0x7da2d0]
cmp edx, edi
jne 0x437632
mov ecx, dword [0x7da7dc]
mov eax, dword [ecx + 0x2c]
add eax, dword [0x7d9ec8]
mov dword [0x7da2d0], eax
mov edx, dword [ecx + 0x1c]
mov dword [0x7d9ab0], edx
mov dword [0x487de0], 0
mov dword [0x4c3160], 1
mov ebx, dword [0x7d9ab0]
lea ecx, [ebp - 0xc]
push ecx
push 0x20
push ebx
push eax
mov dword [ebp - 8], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
push ebx
push eax
mov dword [0x487de4], edx
call fcn.0044fad0
mov dword [0x7da7e4], eax
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
add esp, 8
test cl, cl
je 0x4376a8
push eax
call dword [sym.imp.USER32.dll_CharLowerA]
lea ecx, [ebp + 0x10]
push ecx
call fcn.004373a0
add esp, 4
test eax, eax
jne 0x4376a8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ecx + 0xc]
add eax, esi
mov dword [0x7da2d0], eax
mov ecx, dword [ecx + 8]
mov dword [ebp + 8], edx
mov dword [0x7d9ab0], ecx
jmp 0x4375fd
cmp dword [ebp + 8], edi
jne 0x4376bf
mov eax, dword [0x13b41bc]
mov edx, dword [0x7da7e4]
xor eax, edx
mov dword [0x13b41bc], eax
lea eax, [ebp - 0xa4]
push eax
mov dword [ebp - 0xa4], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor eax, eax
mov ecx, 0x41
lea edi, [ebp - 0x1a8]
push str.kernel32.dll
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetProcAddress
push eax
mov dword [0x7dcd3c], eax
call edi
mov ecx, dword [0x7dcd3c]
push str.IsDebuggerPresent
push ecx
mov dword [0x7dd7a4], eax
call edi
mov edi, eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov al, byte [eax + 2]
and eax, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x43773c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp - 0x94], 1
jb 0x437794
mov eax, dword [ebp - 0xa0]
cmp eax, 4
ja 0x43775c
jne 0x437794
mov eax, dword [ebp - 0x9c]
test eax, eax
jbe 0x437794
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x437771
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x1a8], edx
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], edx
cmp dword [ebp - 0x94], 2
jne 0x4377b0
cmp dword [ebp - 0xa0], 4
mov dword [0x13b41c0], 1
ja 0x4377ba
mov dword [0x13b41c0], 0
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp - 0xc], eax
call fcn.004085c0
test eax, eax
jne 0x4377d5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
push eax
push esi
call fcn.00436de0
add esp, 8
test eax, eax
jne 0x4377ef
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x13b43c4]
push 0
push 0
push 0x7e8
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
xor eax, eax
test ebx, ebx
jbe 0x43781f
mov edx, dword [ebp - 8]
cmp byte [edx + eax], 0xcc
jne 0x43781a
inc dword [0x7da7e8]
inc eax
cmp eax, ebx
jb 0x43780b
call fcn.00408f80
test eax, eax
jne 0x43786d
call fcn.00413130
call fcn.004134b0
mov al, byte [0x13b41c4]
test al, al
je 0x437850
mov eax, dword [0x13b43c4]
push 0x30
push 0
push 0x13b41c4
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x13b43c4]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
call fcn.00412470
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x487de0]
test eax, eax
mov dword [ebp + 0x14], 1
je 0x437886
cmp dword [ebp - 4], eax
jne 0x437936
xor eax, eax
cmp byte [ebp + eax - 0x1a8], 0xcc
je 0x43789a
inc eax
cmp eax, 0xd
jb 0x437888
jmp 0x4378ed
call fcn.004446cb
mov edi, eax
and edi, 0x800003ff
jns 0x4378b1
dec edi
or edi, 0xfffffc00
inc edi
inc edi
shl edi, 0xa
mov dword [ebp + 8], 0x100
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
xor esi, esi
test edi, edi
mov ebx, eax
jbe 0x4378e8
call fcn.004446cb
and eax, 0x800000ff
jns 0x4378e0
dec eax
or eax, 0xffffff00
inc eax
mov byte [esi + ebx], al
inc esi
cmp esi, edi
jb 0x4378cd
dec dword [ebp + 8]
jne 0x4378bc
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [ebp - 0xc]
cmp eax, 0xea60
ja 0x437936
call fcn.0042bfe0
test eax, eax
jne 0x437936
call fcn.00413130
call fcn.004134b0
mov al, byte [0x13b41c4]
test al, al
je 0x43792f
mov edx, dword [0x13b43c4]
push 0x30
push 0
push 0x13b41c4
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp + 0x14], 0
mov eax, dword [0x13b43c4]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x437953
mov ecx, dword [0x13b43c4]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
call fcn.00412470
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10