Function at 0x524958
Capabilities:
Check for time delay via gettickcount
Inspect section memory permissions

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffff98
mov ebx, eax
mov esi, dword [0x5865d0]
cmp byte [ebx + 0x77], 0
je 0x5249ea
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test eax, 0x4000000
jne 0x5249ea
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test ah, 0x40
jne 0x5249ea
mov ecx, esp
mov eax, dword [esi]
mov edx, 4
call fcn.0050c9b0
test al, al
je 0x5249ea
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test eax, 0x802130
jne 0x5249ea
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x553
call fcn.0050d5c8
test al, al
jne 0x5249d7
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x4a8
call fcn.0050d5c8
test al, al
je 0x5249ea
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x78], 0
je 0x524a27
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test eax, 0x2000000
jne 0x524a27
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x4a7
call fcn.0050d5c8
test al, al
je 0x524a27
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x7a], 0
je 0x524a72
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test al, 4
jne 0x524a72
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x590
call fcn.0050d5c8
test al, al
jne 0x524a5f
mov ecx, esp
mov eax, dword [esi]
mov dx, 0xeb0
call fcn.0050d5c8
test al, al
je 0x524a72
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x76], 0
je 0x524aad
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test ah, 0x10
jne 0x524aad
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x455
call fcn.0050d5c8
test al, al
je 0x524aad
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x79], 0
je 0x524ae7
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test al, 1
jne 0x524ae7
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x570
call fcn.0050d5c8
test al, al
je 0x524ae7
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x7f], 0
je 0x524b22
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test ah, 0x20
jne 0x524b22
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x456
call fcn.0050d5c8
test al, al
je 0x524b22
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x7c], 0
je 0x524b82
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x2bf
call fcn.0050c900
test al, al
jne 0x524b82
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x2ea
call fcn.0050c900
test al, al
jne 0x524b82
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x2bf
call fcn.0050d5c8
test al, al
jne 0x524b70
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x2ea
call fcn.0050d5c8
test al, al
je 0x524b82
mov eax, dword [esi]
xor ecx, ecx
mov edx, dword [esp + 4]
call fcn.0050f2cc
jmp 0x525433
cmp byte [ebx + 0x7b], 0
je 0x524bbd
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test ah, 0x40
jne 0x524bbd
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x49e
call fcn.0050d5c8
test al, al
je 0x524bbd
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x80], 0
je 0x524bfd
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test eax, 0x800000
jne 0x524bfd
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x4fe
call fcn.0050d5c8
test al, al
je 0x524bfd
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x81], 0
je 0x524c49
mov eax, dword [esi]
call fcn.0050b9fc
cmp ax, 5
jne 0x524c49
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x465
call fcn.0050c900
test al, al
jne 0x524c49
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x465
call fcn.0050d5c8
test al, al
je 0x524c49
mov eax, dword [esi]
xor ecx, ecx
mov edx, dword [esp + 4]
call fcn.0050f2cc
jmp 0x525433
cmp byte [ebx + 0x81], 0
je 0x524cbf
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x2be
call fcn.0050c900
test al, al
jne 0x524cbf
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x3b3
call fcn.0050c900
test al, al
jne 0x524cbf
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x465
call fcn.0050c900
test al, al
jne 0x524cbf
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x2be
call fcn.0050d5c8
test al, al
jne 0x524cad
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x3b3
call fcn.0050d5c8
test al, al
je 0x524cbf
mov eax, dword [esi]
xor ecx, ecx
mov edx, dword [esp + 4]
call fcn.0050f2cc
jmp 0x525433
cmp byte [ebx + 0x81], 0
je 0x524d46
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x2be
call fcn.0050c900
test al, al
jne 0x524d46
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x3b3
call fcn.0050c900
test al, al
jne 0x524d46
lea ecx, [esp + 0x34]
mov eax, dword [esi]
mov dx, 0x465
call fcn.0050c900
test al, al
jne 0x524d46
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x2be
call fcn.0050d5c8
test al, al
jne 0x524d34
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x3b3
call fcn.0050d5c8
test al, al
jne 0x524d34
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x465
call fcn.0050d5c8
test al, al
je 0x524d46
mov eax, dword [esi]
xor ecx, ecx
mov edx, dword [esp + 4]
call fcn.0050f2cc
jmp 0x525433
cmp byte [ebx + 0x82], 0
je 0x524dec
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test al, 4
jne 0x524dec
call fcn.004b9988
sub eax, dword [ebx + 0xf8]
cmp eax, 0x1388
jbe 0x524dec
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x404
call fcn.0050d5c8
test al, al
jne 0x524dce
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x5ef
call fcn.0050d5c8
test al, al
jne 0x524dce
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x5f1
call fcn.0050d5c8
test al, al
jne 0x524dce
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x6ec
call fcn.0050d5c8
test al, al
jne 0x524dce
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x861
call fcn.0050d5c8
test al, al
je 0x524dec
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
call fcn.004b9988
mov dword [ebx + 0xf8], eax
jmp 0x525433
cmp byte [ebx + 0x8f], 0
je 0x524e68
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test al, 4
jne 0x524e68
call fcn.004b9988
sub eax, dword [ebx + 0xf4]
cmp eax, 0x1388
jbe 0x524e68
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x405
call fcn.0050d5c8
test al, al
jne 0x524e4a
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x5f0
call fcn.0050d5c8
test al, al
jne 0x524e4a
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x5f2
call fcn.0050d5c8
test al, al
je 0x524e68
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
call fcn.004b9988
mov dword [ebx + 0xf4], eax
jmp 0x525433
cmp byte [ebx + 0x91], 0
je 0x524eb9
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test eax, 0x1000000
jne 0x524eb9
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x6ce
call fcn.0050d5c8
test al, al
jne 0x524ea6
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x9d4
call fcn.0050d5c8
test al, al
je 0x524eb9
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x92], 0
je 0x524f0a
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test eax, 0x2000000
jne 0x524f0a
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x6cf
call fcn.0050d5c8
test al, al
jne 0x524ef7
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x7d3
call fcn.0050d5c8
test al, al
je 0x524f0a
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x90], 0
je 0x524f5b
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test eax, 0x3000000
jne 0x524f5b
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x6d0
call fcn.0050d5c8
test al, al
jne 0x524f48
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x9d2
call fcn.0050d5c8
test al, al
je 0x524f5b
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp word [ebx + 0x9c], 0x61c
jne 0x524f9b
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test ah, 0x80
jne 0x524f9b
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x61c
call fcn.0050d5c8
test al, al
je 0x524f9b
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp word [ebx + 0x9c], 0x61b
jne 0x524fdb
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test ah, 0x40
jne 0x524fdb
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x61b
call fcn.0050d5c8
test al, al
je 0x524fdb
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp word [ebx + 0x9c], 0x61a
jne 0x52501b
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test ah, 0x20
jne 0x52501b
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x61a
call fcn.0050d5c8
test al, al
je 0x52501b
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp word [ebx + 0x9c], 0x619
jne 0x52505b
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test ah, 0x10
jne 0x52505b
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x619
call fcn.0050d5c8
test al, al
je 0x52505b
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp word [ebx + 0x9c], 0x618
jne 0x52509b
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test ah, 8
jne 0x52509b
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x618
call fcn.0050d5c8
test al, al
je 0x52509b
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x88], 0
je 0x5250e9
mov ecx, esp
mov eax, dword [esi]
mov edx, 0x525444
call fcn.0050d68c
test al, al
jne 0x5250c8
mov ecx, esp
mov eax, dword [esi]
mov edx, 0x525454
call fcn.0050d7a8
test al, al
je 0x5250e9
lea eax, [esp + 0x34]
call fcn.00524808
test al, al
je 0x5250e9
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 4]
call fcn.00511b00
jmp 0x525433
cmp byte [ebx + 0x87], 0
je 0x525148
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test al, 0x20
jne 0x525148
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x40b
call fcn.0050d5c8
test al, al
jne 0x525135
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x508
call fcn.0050d5c8
test al, al
jne 0x525135
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x563
call fcn.0050d5c8
test al, al
je 0x525148
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x8a], 0
je 0x5251a7
mov eax, dword [esi]
xor edx, edx
call fcn.0050def8
test eax, 0x20000000
jne 0x5251a7
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x3d6
call fcn.0050d5c8
test al, al
jne 0x525194
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x509
call fcn.0050d5c8
test al, al
jne 0x525194
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x55d
call fcn.0050d5c8
test al, al
je 0x5251a7
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x8d], 0
je 0x5251e4
mov eax, dword [esi]
xor edx, edx
call fcn.0050def8
test eax, 0x40000000
jne 0x5251e4
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x3d1
call fcn.0050d5c8
test al, al
je 0x5251e4
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x8e], 0
je 0x525231
lea edx, [esp + 0x34]
mov eax, dword [esi]
call fcn.0050ce80
test al, al
je 0x525231
mov edi, dword [esp + 0x40]
cmp edi, 0x3c
jl 0x52520d
cmp edi, 0x708
jle 0x525231
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x3c5
call fcn.0050d5c8
test al, al
je 0x525231
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x93], 0
je 0x52526e
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test al, 0x10
jne 0x52526e
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x55e
call fcn.0050d5c8
test al, al
je 0x52526e
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0x9e], 0
je 0x5252b3
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
and eax, 0x802130
cmp eax, 0x802130
je 0x5252b3
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x97e
call fcn.0050d5c8
test al, al
je 0x5252b3
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
cmp byte [ebx + 0xd0], 0
je 0x5252f3
mov eax, dword [esi]
mov edx, 8
call fcn.0050def8
test eax, 0x10000000
jne 0x5252f3
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x6e2
call fcn.0050d5c8
test al, al
je 0x5252f3
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x1e4], 0
je 0x525337
mov eax, dword [esi]
mov edx, 4
call fcn.0050def8
test al, 4
jne 0x525337
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x815
call fcn.0050d5c8
test al, al
je 0x525337
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x1e5], 0
je 0x52539d
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
add eax, 0xffffff62
sub eax, 2
jb 0x525366
add eax, 0xffffffec
sub eax, 0xa
jae 0x52539d
mov eax, dword [esi]
mov edx, 0xc
call fcn.0050def8
test eax, 0x2000000
jne 0x52539d
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x87f
call fcn.0050d5c8
test al, al
je 0x52539d
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x1e5], 0
je 0x5253f8
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
add eax, 0xffffff62
sub eax, 2
jb 0x5253f8
mov eax, dword [esi]
mov edx, 0xc
call fcn.0050def8
test eax, 0x8000000
jne 0x5253f8
mov ecx, esp
mov eax, dword [esi]
mov dx, 0x87f
call fcn.0050d5c8
test al, al
je 0x5253f8
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
jmp 0x525433
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x1c1], 0
je 0x525433
mov ecx, esp
mov eax, dword [esi]
mov edx, 0x525464
call fcn.0050d68c
test al, al
je 0x525433
mov eax, dword [esi]
call fcn.0050f338
test al, 2
jne 0x525433
mov eax, dword [esi]
or ecx, 0xffffffff
mov edx, dword [esp + 4]
call fcn.00511928
add esp, 0x68
pop edi
pop esi
pop ebx
ret