Function at 0x402980
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov ecx, 0xb2
mov dword [ebp - 8], 0
mov esi, 0x5833
lea ebx, [ebx]
mov eax, 0x8ca29c05
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4029a0
mov eax, 0x1675
mov edx, 0xd
nop
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4029c0
mov ebx, 0xae5
lea ecx, [ecx]
mov eax, 0x4d4873ed
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x4029d0
mov edi, 0xc8d
jmp 0x4029f0
mov eax, 0x5d9f7391
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4029f0
mov esi, 0x6cdf
mov ecx, 0x777c
lea ecx, [ecx]
mov eax, 0x66666667
imul esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402a10
mov eax, 0x13e22cbd
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402a23
mov eax, 0x2683
jmp 0x402a40
dec eax
jne 0x402a40
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
push dword [eax + 0xc]
call fcn.00402cd0
add esp, 4
mov dword [ebp - 4], eax
xor ebx, ebx
inc ebx
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x402a7d
inc ebx
cmp ebx, 0x6f91
jl 0x402a62
mov ebx, 0x7f
xor edi, edi
lea esp, [esp]
inc edi
mov eax, 0x38e38e39
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x402aab
inc edi
cmp edi, 0x6fbe
jl 0x402a90
mov edi, 0x4cdb
cmp dword [ebp + 8], esi
je 0x402b9c
xor esi, esi
inc esi
mov eax, 0x38e38e39
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x402ae0
add esi, 2
cmp esi, 0x403e
jl 0x402ac3
mov ecx, 0x857
mov edx, 0x69
mov eax, 0x3d
cmp eax, 0x69
cmovl eax, edx
dec ecx
jne 0x402af7
mov esi, dword [ebp - 4]
cmp dword [esi + 0x18], ecx
je 0x402b69
mov edi, dword [ebp + 8]
mov ecx, 0x98
mov eax, 0x1b8f
cmp ebx, 0x98
cmovg ebx, ecx
dec eax
jne 0x402b15
push edi
push dword [esi + 0x30]
call fcn.004030f0
add esp, 8
test eax, eax
jne 0x402b93
mov edx, dword [ebp - 8]
cmp edx, 0x7dd
jge 0x402b5c
mov ecx, 0x7dc
sub ecx, edx
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, dword [ebp - 8]
lea edx, [edx + eax*2]
add edx, 0xa
mov dword [ebp - 8], edx
mov esi, dword [esi]
mov ecx, 0x98
cmp dword [esi + 0x18], 0
jne 0x402b10
xor ecx, ecx
jmp 0x402b70
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x402b7f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402b82
inc ecx
cmp ecx, 0x6519
jl 0x402b70
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x402b69
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 0x18]
test ebx, ebx
je 0x402b69
lea ecx, [ecx]
test edi, edi
je 0x402bcc
mov eax, 0xb21642c9
imul edi
add edx, edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402bb4
mov eax, dword [ebp + 0xc]
cmp ebx, eax
je 0x402c0b
mov ecx, dword [ecx]
mov dword [ebp - 4], ecx
cmp esi, 0x2a9f
jge 0x402bff
lea ecx, [ecx]
inc esi
mov eax, esi
and eax, 0x80000001
jns 0x402bef
dec eax
or eax, 0xfffffffe
inc eax
jne 0x402bf4
add esi, 5
cmp esi, 0x2a9f
jl 0x402be0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ecx + 0x18]
test ebx, ebx
jne 0x402bb0
jmp 0x402b69
mov ecx, 0x1325
mov eax, 0x487ede05
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402c10
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret