Function at 0x42a790
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x54b8d8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5b2ae0]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
xor edi, edi
sar eax, 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
test eax, eax
jle 0x42ae6c
jmp 0x42a7e8
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
sar eax, 2
cmp edi, eax
jb 0x42a7fa
call fcn.005177ee
mov ecx, dword [esi + 0xc]
mov ebx, dword [ecx + edi*4]
xor eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
mov edx, dword [ebx + 8]
push 0x10
mov dword [esp + 0x20], edx
call fcn.004efc07
mov esi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], 0x10
test eax, eax
je 0x42a852
mov ecx, dword [esp + 0x28]
push ecx
push eax
push esi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], esi
mov dword [eax + esi], 0x54595045
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42a8be
test esi, esi
jne 0x42a880
mov esi, 0x10
cmp esi, eax
jge 0x42a88a
add esi, esi
cmp esi, eax
jl 0x42a884
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42a8ba
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [eax + ecx], 4
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42a92a
test esi, esi
jne 0x42a8ec
mov esi, 0x10
cmp esi, eax
jge 0x42a8f6
add esi, esi
cmp esi, eax
jl 0x42a8f0
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42a926
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [esp + 0x30]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov dword [edx + eax], ecx
add dword [esp + 0x28], 4
mov eax, dword [ebx + 0x10]
cmp dword [eax - 0xc], 0
mov dword [esp + 0x1c], eax
je 0x42aa5f
mov ecx, eax
push ecx
call dword [0x5603e8]
mov esi, dword [esp + 0x2c]
lea ebx, [eax + eax + 2]
mov eax, dword [esp + 0x28]
add eax, 4
cmp esi, eax
jge 0x42a9b2
test esi, esi
jne 0x42a974
mov esi, 0x10
cmp esi, eax
jge 0x42a97e
add esi, esi
cmp esi, eax
jl 0x42a978
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42a9ae
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [esp + 0x30]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx], 0x4e414d45
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42aa1e
test esi, esi
jne 0x42a9e0
mov esi, 0x10
cmp esi, eax
jge 0x42a9ea
add esi, esi
cmp esi, eax
jl 0x42a9e4
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42aa1a
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [eax + ecx], ebx
add dword [esp + 0x28], 4
test ebx, ebx
jbe 0x42aa5f
mov edx, dword [esp + 0x28]
lea eax, [edx + ebx]
lea edi, [esp + 0x24]
call fcn.004d9cb0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
push ebx
add eax, ecx
push edx
push eax
call fcn.0051fbd0
add esp, 0xc
add dword [esp + 0x28], ebx
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
cmp esi, eax
jge 0x42aabc
test esi, esi
jne 0x42aa7e
mov esi, 0x10
cmp esi, eax
jge 0x42aa88
add esi, esi
cmp esi, eax
jl 0x42aa82
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42aab8
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [eax + ecx], 0x444c59
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42ab2a
test esi, esi
jne 0x42aaea
mov esi, 0x10
cmp esi, eax
jge 0x42aaf6
mov edi, edi
add esi, esi
cmp esi, eax
jl 0x42aaf0
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42ab26
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [esp + 0x30]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx], 4
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42ab9a
test esi, esi
jne 0x42ab58
mov esi, 0x10
cmp esi, eax
jge 0x42ab66
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x42ab60
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42ab96
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx], ebx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
mov ebx, dword [edx + 0x18]
add eax, 4
cmp esi, eax
jge 0x42ac0a
test esi, esi
jne 0x42abcb
mov esi, 0x10
cmp esi, eax
jge 0x42abd6
nop
add esi, esi
cmp esi, eax
jl 0x42abd0
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42ac06
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [eax + ecx], 0x444953
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42ac7a
test esi, esi
jne 0x42ac38
mov esi, 0x10
cmp esi, eax
jge 0x42ac46
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x42ac40
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42ac76
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [esp + 0x30]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx], 4
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x28], eax
add eax, 4
cmp esi, eax
jge 0x42acea
test esi, esi
jne 0x42aca8
mov esi, 0x10
cmp esi, eax
jge 0x42acb6
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x42acb0
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42ace6
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0051fbd0
mov edx, dword [esp + 0x30]
push edx
call fcn.004efc12
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [eax + ecx], ebx
mov ecx, dword [esp + 0x18]
add dword [esp + 0x28], 4
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x24]
push eax
call edx
mov eax, dword [esp + 0x24]
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 4]
add eax, 4
cmp esi, eax
jge 0x42ad65
test esi, esi
jne 0x42ad2c
mov esi, 0x10
cmp esi, eax
jge 0x42ad36
add esi, esi
cmp esi, eax
jl 0x42ad30
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [ebp]
add esp, 4
mov dword [ebp + 8], esi
test eax, eax
je 0x42ad62
mov ecx, dword [ebp + 4]
push ecx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [ebp]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [ebp], edi
mov eax, dword [ebp + 4]
add eax, dword [ebp]
mov edx, dword [esp + 0x14]
or edx, 0x49000000
mov dword [eax], edx
add dword [ebp + 4], 4
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 8]
add eax, 4
cmp esi, eax
jge 0x42adca
test esi, esi
jne 0x42ad91
mov esi, 0x10
cmp esi, eax
jge 0x42ad9b
add esi, esi
cmp esi, eax
jl 0x42ad95
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [ebp]
add esp, 4
mov dword [ebp + 8], esi
test eax, eax
je 0x42adc7
mov ecx, dword [ebp + 4]
push ecx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [ebp]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [ebp], edi
mov eax, dword [ebp + 4]
add eax, dword [ebp]
mov dword [eax], ebx
add dword [ebp + 4], 4
mov eax, dword [ebp + 4]
test ebx, ebx
jbe 0x42ae40
mov esi, dword [ebp + 8]
add eax, ebx
cmp esi, eax
jge 0x42ae28
test esi, esi
jne 0x42adef
mov esi, 0x10
cmp esi, eax
jge 0x42adf9
add esi, esi
cmp esi, eax
jl 0x42adf3
push esi
call fcn.004efc07
mov edi, eax
mov eax, dword [ebp]
add esp, 4
mov dword [ebp + 8], esi
test eax, eax
je 0x42ae25
mov edx, dword [ebp + 4]
push edx
push eax
push edi
call fcn.0051fbd0
mov eax, dword [ebp]
push eax
call fcn.004efc12
add esp, 0x10
mov dword [ebp], edi
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
add eax, dword [ebp]
push ebx
push ecx
push eax
call fcn.0051fbd0
add esp, 0xc
add dword [ebp + 4], ebx
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42ae59
push eax
call fcn.004efc12
add esp, 4
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jl 0x42a7e0
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret