Function at 0x403310
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x464828
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48
push esi
mov esi, ecx
push edi
xor edi, edi
mov ecx, dword [esi + 0xc]
cmp ecx, edi
mov dword [esp + 0x18], ecx
jne 0x40334e
pop edi
xor al, al
pop esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
add esp, 0x54
ret 4
cmp dword [esi + 0x24], edi
je 0x403368
pop edi
xor al, al
pop esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
add esp, 0x54
ret 4
mov edx, dword [esi + 0x30]
mov eax, ecx
sar eax, 0x10
shl eax, 2
and ecx, 0xffff
mov dword [esp + 0xc], eax
mov eax, dword [edx + eax]
push ebx
shl ecx, 5
push ebp
mov dword [esp + 0x18], ecx
mov eax, dword [eax + ecx + 0x14]
cmp eax, edi
setne bl
cmp eax, edi
je 0x4033a2
push eax
mov ecx, esi
call fcn.004041e0
cmp eax, edi
jne 0x403396
test bl, bl
je 0x4033ad
mov ecx, esi
call fcn.00404240
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x34]
cmp ecx, eax
mov byte [esp + 0x13], 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x44], edi
jne 0x4033e3
push edi
mov ecx, esi
call fcn.00401aa0
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
mov ebp, edx
mov ebx, edx
sar ebp, 0x10
lea eax, [edx + 1]
and ebx, 0xffff
shl ebp, 2
mov dword [esi + 0x14], eax
xor eax, eax
mov edi, dword [ecx + ebp]
mov ecx, 8
shl ebx, 5
add edi, ebx
mov dword [esp + 0x24], edx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x30]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [ecx + eax]
mov ecx, dword [ecx + ebp]
add ecx, ebx
mov eax, dword [eax + edi + 0xc]
mov edi, dword [ecx + 0xc]
and eax, 0xffff
inc eax
and edi, 0xffff0000
or edi, eax
mov dword [ecx + 0xc], edi
lea ecx, [esp + 0x3c]
push ecx
push edx
mov ecx, esi
call fcn.00401e70
mov ecx, dword [esi + 0x30]
mov edi, eax
mov edx, dword [ecx + ebp]
mov eax, dword [edx + ebx + 0xc]
test eax, 0x800000
je 0x403464
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x14]
xor ebp, ebp
mov ecx, dword [ecx + edx]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + edx + 0xc]
mov edx, dword [ecx]
xor eax, edx
and eax, 0x200000
xor eax, edx
mov dword [ecx], eax
mov eax, dword [0x47469c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], 0x1002
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x60], ebp
push ecx
lea ecx, [esp + 0x3c]
call fcn.0045e503
mov ebx, dword [esp + 0x20]
lea edx, [esp + 0x28]
lea eax, [esp + 0x1c]
push edx
push eax
push ebx
mov ecx, esi
mov dword [esp + 0x28], ebp
call fcn.00403760
mov ecx, dword [esp + 0x2c]
push ebp
push ecx
push edi
mov ecx, esi
mov dword [esp + 0x74], eax
call fcn.00403670
mov eax, dword [esi + 0x30]
mov edx, edi
mov ecx, edi
sar edx, 0x10
and ecx, 0xffff
mov edx, dword [eax + edx*4]
shl ecx, 5
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax]
add edx, ecx
cmp edi, ebp
mov dword [eax], edx
mov edx, dword [esi + 0x30]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx + 0x14], edi
je 0x40353f
mov ecx, dword [esi + 0x30]
mov eax, edi
and edi, 0xffff
sar eax, 0x10
shl eax, 2
shl edi, 5
mov ecx, dword [eax + ecx]
mov dword [ecx + edi + 0x10], ebx
mov ecx, dword [esi + 0x30]
mov edx, dword [eax + ecx]
mov edi, dword [edx + edi + 0x18]
cmp edi, ebp
jne 0x403519
mov eax, dword [esp + 0x24]
mov ecx, esi
push eax
call fcn.00404190
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x68]
push 1
mov eax, dword [ecx - 8]
mov ecx, esi
sub eax, edi
mov edi, eax
push edi
push ebx
call fcn.00403670
mov edx, dword [esi + 0x30]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], 0xffffffff
mov ecx, dword [edx + eax]
mov edx, dword [esp + 0x18]
mov ebx, dword [ecx + edx + 4]
lea eax, [ecx + edx + 4]
add ebx, edi
xor ecx, ecx
mov dword [eax], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebp
mov dword [esi + 0x10], ebp
setne cl
mov dword [esi + 0x1c], ecx
lea ecx, [esp + 0x38]
mov dword [esi + 0x20], ebp
mov dword [esi + 0x24], ebp
call fcn.0045e3c6
mov ecx, dword [esp + 0x58]
mov al, byte [esp + 0x13]
pop ebp
pop ebx
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x54
ret 4