Function at 0x422320
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4b4cf8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e88d0]
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 0x422a4c
jmp 0x422378
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 0x42238a
call fcn.00493571
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.00472669
mov esi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], 0x10
test eax, eax
je 0x4223e2
mov ecx, dword [esp + 0x28]
push ecx
push eax
push esi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 0x42244e
test esi, esi
jne 0x422410
mov esi, 0x10
cmp esi, eax
jge 0x42241a
add esi, esi
cmp esi, eax
jl 0x422414
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42244a
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 0x4224ba
test esi, esi
jne 0x42247c
mov esi, 0x10
cmp esi, eax
jge 0x422486
add esi, esi
cmp esi, eax
jl 0x422480
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x4224b6
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0049ad40
mov eax, dword [esp + 0x30]
push eax
call fcn.00472674
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 + 0xc]
cmp dword [eax - 0xc], 0
mov dword [esp + 0x1c], eax
je 0x422637
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, dword [esp + 0x2c]
lea ebx, [eax + eax + 2]
mov eax, dword [esp + 0x28]
add eax, 4
cmp esi, eax
jge 0x422542
test esi, esi
jne 0x422504
mov esi, 0x10
cmp esi, eax
jge 0x42250e
add esi, esi
cmp esi, eax
jl 0x422508
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x42253e
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0049ad40
mov eax, dword [esp + 0x30]
push eax
call fcn.00472674
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 0x4225ae
test esi, esi
jne 0x422570
mov esi, 0x10
cmp esi, eax
jge 0x42257a
add esi, esi
cmp esi, eax
jl 0x422574
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x4225aa
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 0x422637
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
lea eax, [edx + ebx]
cmp esi, eax
jge 0x42261a
test esi, esi
jne 0x4225da
mov esi, 0x10
cmp esi, eax
jge 0x4225e6
mov edi, edi
add esi, esi
cmp esi, eax
jl 0x4225e0
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x422616
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
add esp, 0x10
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
push ebx
add eax, ecx
push edx
push eax
call fcn.0049ad40
add esp, 0xc
add dword [esp + 0x28], ebx
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 4
cmp esi, eax
jge 0x42269a
test esi, esi
jne 0x422656
mov esi, 0x10
cmp esi, eax
jge 0x422666
lea ebx, [ebx]
add esi, esi
cmp esi, eax
jl 0x422660
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x422696
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 0x42270a
test esi, esi
jne 0x4226c8
mov esi, 0x10
cmp esi, eax
jge 0x4226d6
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x4226d0
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x422706
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0049ad40
mov eax, dword [esp + 0x30]
push eax
call fcn.00472674
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 0x42277a
test esi, esi
jne 0x422738
mov esi, 0x10
cmp esi, eax
jge 0x422746
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x422740
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x422776
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 + 0x14]
add eax, 4
cmp esi, eax
jge 0x4227ea
test esi, esi
jne 0x4227ab
mov esi, 0x10
cmp esi, eax
jge 0x4227b6
nop
add esi, esi
cmp esi, eax
jl 0x4227b0
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x4227e6
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 0x42285a
test esi, esi
jne 0x422818
mov esi, 0x10
cmp esi, eax
jge 0x422826
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x422820
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x422856
mov edx, dword [esp + 0x28]
push edx
push eax
push edi
call fcn.0049ad40
mov eax, dword [esp + 0x30]
push eax
call fcn.00472674
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 0x4228ca
test esi, esi
jne 0x422888
mov esi, 0x10
cmp esi, eax
jge 0x422896
lea esp, [esp]
add esi, esi
cmp esi, eax
jl 0x422890
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x2c], esi
test eax, eax
je 0x4228c6
mov ecx, dword [esp + 0x28]
push ecx
push eax
push edi
call fcn.0049ad40
mov edx, dword [esp + 0x30]
push edx
call fcn.00472674
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 + 0x2c]
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 0x422945
test esi, esi
jne 0x42290c
mov esi, 0x10
cmp esi, eax
jge 0x422916
add esi, esi
cmp esi, eax
jl 0x422910
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [ebp]
add esp, 4
mov dword [ebp + 8], esi
test eax, eax
je 0x422942
mov ecx, dword [ebp + 4]
push ecx
push eax
push edi
call fcn.0049ad40
mov eax, dword [ebp]
push eax
call fcn.00472674
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 0x4229aa
test esi, esi
jne 0x422971
mov esi, 0x10
cmp esi, eax
jge 0x42297b
add esi, esi
cmp esi, eax
jl 0x422975
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [ebp]
add esp, 4
mov dword [ebp + 8], esi
test eax, eax
je 0x4229a7
mov ecx, dword [ebp + 4]
push ecx
push eax
push edi
call fcn.0049ad40
mov eax, dword [ebp]
push eax
call fcn.00472674
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 0x422a20
mov esi, dword [ebp + 8]
add eax, ebx
cmp esi, eax
jge 0x422a08
test esi, esi
jne 0x4229cf
mov esi, 0x10
cmp esi, eax
jge 0x4229d9
add esi, esi
cmp esi, eax
jl 0x4229d3
push esi
call fcn.00472669
mov edi, eax
mov eax, dword [ebp]
add esp, 4
mov dword [ebp + 8], esi
test eax, eax
je 0x422a05
mov edx, dword [ebp + 4]
push edx
push eax
push edi
call fcn.0049ad40
mov eax, dword [ebp]
push eax
call fcn.00472674
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.0049ad40
add esp, 0xc
add dword [ebp + 4], ebx
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x24]
test eax, eax
je 0x422a39
push eax
call fcn.00472674
add esp, 4
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jl 0x422370
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret