Function at 0x43ca10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x74
mov esi, ecx
mov eax, dword [esp + 0x88]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [esp + 0x24], 0
mov dword [esp + 8], 0x100000
mov dword [esp + 4], 0
lea ebp, [esp + 8]
lea ebx, [esp + 4]
push 4
push 0x3000
push ebp
push 0
push ebx
push 0xffffffffffffffff
call dword [0x4586d4]
test eax, eax
js 0x43ced9
xorps xmm0, xmm0
movups xmmword [esp + 0x58], xmm0
movups xmmword [esp + 0x4c], xmm0
mov ecx, 0x10000
xor edi, edi
mov dword [esp + 0x10], esi
jmp 0x43cab4
mov esi, dword [esp + 0x10]
lea ebx, [esp + 4]
lea ebp, [esp + 8]
nop word cs:[eax + eax]
mov ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x4c]
cmp ecx, 0x7fffffff
jae 0x43cec6
mov dword [esp + 0x14], ecx
push 0
push 0x1c
lea eax, [esp + 0x54]
push eax
push 0
push ecx
push dword [esi]
push 0xba45a82d
call fcn.0043c870
mov edx, dword [esp + 0x30]
add esp, 0x1c
cmp eax, 0xbfffffff
ja 0x43cec6
test eax, eax
js 0x43caa0
cmp dword [esp + 0x5c], 0x1000
jne 0x43caa0
cmp dword [esp + 0x60], 1
je 0x43caa0
mov eax, dword [esp + 8]
cmp dword [esp + 0x58], eax
jbe 0x43cb47
push 0x8000
lea eax, [esp + 0x28]
push eax
push ebx
push 0xffffffffffffffff
call dword [0x4586d8]
mov dword [esp + 4], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
push 4
push 0x3000
push ebp
push 0
push ebx
push 0xffffffffffffffff
call dword [0x4586d4]
mov edx, dword [esp + 0x14]
test eax, eax
js 0x43cec6
mov eax, dword [esp + 8]
lea ecx, [esp + 0x48]
push ecx
push eax
push dword [esp + 0xc]
push edx
push dword [esi]
push 0x6d9d9f13
call fcn.0043c6c0
add esp, 0x18
cmp eax, 0xbfffffff
ja 0x43caa0
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x54]
push dword [esp + 0x14]
lea eax, [esp + 0x7c]
push eax
call fcn.0043cef0
add esp, 0x18
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x20], eax
cmp ecx, eax
je 0x43caa0
mov eax, dword [esp + 0x88]
mov edx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp], eax
mov dword [esp + 0x30], ecx
mov esi, ecx
jmp 0x43cbf5
mov dword [edx + ebx*4], esi
mov edi, dword [esp + 0xc]
add edi, 4
mov eax, dword [esp + 0x88]
mov dword [eax + 4], edi
mov esi, dword [esp + 0x44]
add esi, 4
cmp esi, dword [esp + 0x20]
je 0x43ce99
mov dword [esp + 0xc], edi
mov ebx, edx
mov ebp, edx
not ebp
and ebp, edi
mov ecx, ebp
add ecx, ebp
mov eax, edx
xor eax, edi
sub ecx, eax
mov eax, edi
mov edi, edx
mov dword [esp + 0x44], esi
mov esi, dword [esi]
sub esi, dword [esp + 4]
sar ecx, 2
cmp eax, dword [esp]
jne 0x43cdaf
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], esi
lea eax, [ecx + 1]
mov ebx, ecx
shr ebx, 1
mov dword [esp + 0x3c], ecx
add ebx, ecx
cmp ebx, eax
cmovbe ebx, eax
lea eax, [ebx*4]
cmp ebx, 0x40000000
mov ecx, 0xffffffff
cmovae eax, ecx
mov ecx, dword fs:[0x30]
push eax
push 0
push dword [ecx + 0x18]
call dword [0x458fc8]
mov edx, eax
test edi, edi
je 0x43cd8a
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x1c]
not eax
and eax, edi
mov ecx, ebp
sub ecx, eax
cmp edx, edi
mov dword [esp + 0x18], edx
jae 0x43cc9a
mov eax, edi
mov esi, edi
mov edi, edx
xchg esi, eax
rep movsb byte es:[edi], byte [esi]
xchg esi, eax
mov edi, esi
jmp 0x43cd70
test ecx, ecx
je 0x43cd70
lea eax, [edi + ecx]
dec eax
mov edx, dword [esp + 0x18]
lea esi, [edx + ecx]
dec esi
cmp ecx, 4
jb 0x43ccd6
mov dword [esp], eax
cmp edx, esi
ja 0x43ccd3
mov eax, dword [esp]
cmp edi, eax
ja 0x43ccd6
lea eax, [edi + ebp]
dec eax
add edx, ebp
dec edx
sub eax, edx
cmp eax, 0x10
jae 0x43cdf4
mov eax, dword [esp]
mov edx, esi
mov ebp, ecx
mov esi, edi
lea ecx, [ebp - 1]
mov edi, ebp
and edi, 7
je 0x43cd0a
mov dword [esp], ecx
xor ecx, ecx
nop dword [eax + eax]
movzx ebx, byte [eax]
dec eax
mov byte [edx], bl
dec edx
inc ecx
cmp edi, ecx
jne 0x43ccf0
sub ebp, ecx
mov edi, esi
mov ecx, dword [esp]
cmp ecx, 7
jae 0x43cd11
jmp 0x43cd70
mov edi, esi
cmp ecx, 7
jb 0x43cd70
neg ebp
xor ecx, ecx
nop word cs:[eax + eax]
movzx ebx, byte [eax + ecx]
mov byte [edx + ecx], bl
movzx ebx, byte [eax + ecx - 1]
mov byte [edx + ecx - 1], bl
movzx ebx, byte [eax + ecx - 2]
mov byte [edx + ecx - 2], bl
movzx ebx, byte [eax + ecx - 3]
mov byte [edx + ecx - 3], bl
movzx ebx, byte [eax + ecx - 4]
mov byte [edx + ecx - 4], bl
movzx ebx, byte [eax + ecx - 5]
mov byte [edx + ecx - 5], bl
movzx ebx, byte [eax + ecx - 6]
mov byte [edx + ecx - 6], bl
movzx ebx, byte [eax + ecx - 7]
mov byte [edx + ecx - 7], bl
add ecx, 0xfffffff8
cmp ebp, ecx
jne 0x43cd20
nop dword [eax]
mov eax, dword fs:[0x30]
push edi
push 0
push dword [eax + 0x18]
call dword [0x458fd0]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x88]
mov dword [eax], edx
mov ecx, dword [esp + 0x3c]
lea esi, [edx + ecx*4]
mov dword [esp + 0xc], esi
lea esi, [edx + ebx*4]
mov dword [esp], esi
mov dword [eax + 8], esi
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
add esi, dword [esp + 0x14]
mov ebx, eax
sub ebx, edi
sar ebx, 2
cmp ebx, ecx
jae 0x43cbd0
mov ebp, edi
mov edi, eax
lea eax, [ecx*4]
add eax, ebp
sub eax, edi
je 0x43cbd0
lea ecx, [edx + ebx*4]
mov ebp, edx
lea edx, [edx + ebx*4]
add edx, 4
push eax
push ecx
push edx
call fcn.00417a30
mov edx, ebp
add esp, 0xc
jmp 0x43cbd0
xor ebx, ebx
cmp ecx, 0x10
mov ebp, dword [esp]
jb 0x43ce2e
mov ebx, ecx
and ebx, 0xfffffff0
mov eax, ebx
neg eax
xor edx, edx
nop dword [eax]
movups xmm0, xmmword [ebp + edx - 0xf]
movups xmmword [esi + edx - 0xf], xmm0
add edx, 0xfffffff0
cmp eax, edx
jne 0x43ce10
cmp ecx, ebx
je 0x43cd70
test cl, 0xc
je 0x43ce8b
mov edx, esi
mov dword [esp + 0x2c], edi
mov esi, ecx
and esi, 0xfffffffc
mov eax, esi
neg eax
mov dword [esp + 0x34], eax
mov eax, ebp
sub eax, esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x28], esi
sub edx, esi
mov ebp, ecx
and ebp, 3
neg ebx
nop word cs:[eax + eax]
mov esi, dword [esp]
mov edi, dword [esi + ebx - 3]
mov esi, dword [esp + 0x38]
mov dword [esi + ebx - 3], edi
add ebx, 0xfffffffc
cmp dword [esp + 0x34], ebx
jne 0x43ce60
cmp ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
jne 0x43ccda
jmp 0x43cd70
and ecx, 0xf
sub esi, ebx
sub ebp, ebx
mov eax, ebp
jmp 0x43ccd6
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x43ca89
cmp ecx, dword [esp + 0x20]
je 0x43ca89
mov eax, dword fs:[0x30]
push ecx
push 0
push dword [eax + 0x18]
call dword [0x458fd0]
jmp 0x43ca89
push 0x8000
lea eax, [esp + 0x28]
push eax
push ebx
push 0xffffffffffffffff
call dword [0x4586d8]
mov eax, dword [esp + 0x88]
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret 0x10