Function at 0x44ab70
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x511808
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x574be0]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push esi
push edi
mov eax, dword [0x574be0]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x28], ebx
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0x88], 0
mov eax, dword [ebx + 0x7c]
mov esi, dword [ebx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x30]
push eax
push esi
mov dword [esp + 0x2c], esi
call dword [0x51b410]
push esi
call dword [0x51b458]
push 0xffffffffffffffec
push dword [ebx + 4]
mov edi, eax
call dword [0x51b468]
test eax, 0x80000
jne 0x44ac1f
or eax, 0x80000
push eax
push 0xffffffffffffffec
push dword [ebx + 4]
call dword [0x51b480]
cmp dword [ebx + 0x48], 0
jne 0x44ad26
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x44ac37
push eax
call dword [0x51b080]
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x44ac45
push eax
call dword [0x51b074]
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x44ac53
push eax
call dword [0x51b080]
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x30]
xorps xmm0, xmm0
movq qword [esp + 0x54], xmm0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x3c]
movq qword [esp + 0x5c], xmm0
push 0
movq qword [esp + 0x68], xmm0
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x78], 0
mov dword [esp + 0x54], 0x28
mov dword [esp + 0x60], 0x200001
mov dword [esp + 0x64], 0
mov dword [esp + 0x5c], eax
call dword [0x51b088]
push 0
push 0
lea ecx, [ebx + 0x58]
push ecx
push 0
lea ecx, [esp + 0x60]
push ecx
push eax
mov dword [ebx + 0x48], eax
call dword [0x51b078]
push eax
push dword [ebx + 0x48]
mov dword [ebx + 0x4c], eax
call dword [0x51b084]
cmp byte [ebx + 0x9c], 0
je 0x44ad0a
push edi
call dword [0x51b088]
push 0
push 0
mov dword [ebx + 0x50], eax
lea eax, [ebx + 0x5c]
push eax
push 0
lea eax, [esp + 0x60]
push eax
push edi
call dword [0x51b078]
push eax
push dword [ebx + 0x50]
mov dword [ebx + 0x54], eax
call dword [0x51b084]
push edi
push esi
call dword [0x51b478]
cmp dword [ebx + 0x60], 0
jne 0x44ad26
push 0xc
push dword [ebx + 0x48]
call dword [0x51b07c]
mov dword [ebx + 0x60], eax
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
sub edi, dword [esp + 0x30]
sub esi, dword [esp + 0x34]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], esi
je 0x44afcf
cmp dword [esp + 0x14], 0
je 0x44afcf
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x28]
call dword [0x51b444]
cmp dword [ebx + 0x60], 0x20
jne 0x44b057
imul esi, edi
shl esi, 2
cmp byte [ebx + 0x9c], 0
push esi
push 0
push dword [ebx + 0x58]
jne 0x44ae11
call fcn.004eff70
add esp, 0xc
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x48]
push 0x20
push dword [esp + 0x20]
call dword [0x51b5a8]
test eax, eax
jns 0x44afcf
push eax
lea eax, [esp + 0x24]
push 0x550980
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x14]
push 0x550ad0
call fcn.004204a0
mov byte [esp + 0x88], 1
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 2
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 3
jmp 0x44af20
call fcn.004eff70
add esp, 0xc
push esi
push 0xff
push dword [ebx + 0x5c]
call fcn.004eff70
mov esi, dword [esp + 0x20]
mov edi, dword [0x51b5a8]
add esp, 0xc
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x48]
push 0x20
push esi
call edi
test eax, eax
jns 0x44aea9
push eax
lea eax, [esp + 0x24]
push 0x550af0
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x14]
push 0x550ad0
call fcn.004204a0
mov byte [esp + 0x88], 4
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 5
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 6
jmp 0x44af20
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x50]
push 0x20
push esi
call edi
test eax, eax
jns 0x44af57
push eax
lea eax, [esp + 0x24]
push 0x550a58
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x14]
push 0x550ad0
call fcn.004204a0
mov byte [esp + 0x88], 7
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 8
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 9
cmp dword [ebx + 0x34], 0
je 0x44af37
push 2
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x30]
push eax
call fcn.004219a0
lea ecx, [esp + 0x1c]
call fcn.004205e0
lea ecx, [esp + 0x18]
call fcn.004205e0
lea ecx, [esp + 0x14]
call fcn.004205e0
jmp 0x44b00d
mov eax, dword [esp + 0x18]
mov esi, dword [ebx + 0x58]
mov edi, dword [ebx + 0x5c]
test eax, eax
jle 0x44afcf
mov ecx, dword [esp + 0x2c]
lea esp, [esp]
test ecx, ecx
jle 0x44afc4
mov dword [esp + 0x14], ecx
mov ah, byte [esi + 2]
mov al, byte [edi + 2]
mov cl, byte [esi]
mov dl, byte [esi + 1]
mov dh, byte [edi]
mov bl, byte [edi + 1]
sub dh, cl
sub al, ah
movzx ecx, al
sub bl, dl
movzx eax, bl
add ecx, eax
movzx eax, dh
add ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
or al, 0xff
add esi, 4
sub al, cl
add edi, 4
dec dword [esp + 0x14]
mov byte [esi - 1], al
jne 0x44af78
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x18], eax
jne 0x44af70
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x44afe4
push eax
call dword [0x51b080]
mov dword [ebx + 0x44], 0
push dword [ebx + 0x4c]
call fcn.0044c410
push 1
push eax
push dword [ebx + 4]
mov dword [ebx + 0x44], eax
call dword [0x51b404]
push 2
push 0xff
push 0
push dword [ebx + 4]
call dword [0x51b49c]
mov dword [esp + 0x88], 0xffffffff
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44b036
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e9fca
mov esp, ebp
pop ebp
ret
push dword [esp + 0x24]
call dword [0x51b438]
mov edi, eax
push edi
call dword [0x51b41c]
push 0xcc0020
push 0
push 0
mov esi, eax
push esi
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push 0
push 0
push dword [ebx + 0x48]
call dword [0x51b094]
push esi
push edi
call dword [0x51b478]
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x48]
push 0x20
push dword [esp + 0x20]
call dword [0x51b5a8]
test eax, eax
jns 0x44afcf
push eax
lea eax, [esp + 0x24]
push 0x550a94
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x24]
push 0x550ad0
call fcn.004204a0
mov byte [esp + 0x88], 0xa
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x28], esi
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 0xb
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 0xc
cmp dword [ebx + 0x34], 0
je 0x44b128
push 2
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [ebx + 0x30]
push eax
call fcn.004219a0
mov byte [esp + 0x88], 0xb
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44b150
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [esp + 0x88], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44b171
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x88], 0
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44b00d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x44b00d