Function at 0x4bab20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 8]
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x34], xmm0
movdqu xmmword [esp + 0x44], xmm0
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov byte [esp + 0x40], al
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x4c], al
mov byte [esp + 0x50], al
mov dword [esp + 0x54], eax
pxor xmm0, xmm0
movdqa xmmword [esp + 0x20], xmm0
mov dword [esp + 0x2d], eax
mov dword [esp + 0x31], eax
movzx eax, byte [ecx + 0xb]
test al, al
jns 0x4bab87
mov esi, dword [ecx + 4]
jmp 0x4bab8c
mov esi, eax
and esi, 0x7f
lea ebx, [esi + 7]
cmp ebx, 0x7ffffff0
jae 0x4bb0d5
mov dword [esp + 0x18], eax
mov dword [esp], edx
cmp ebx, 0xa
jbe 0x4babd0
mov edi, ebx
or ebx, 0xf
inc ebx
push ebx
call fcn.00510d64
mov ecx, dword [ebp + 8]
add esp, 4
or ebx, 0x80000000
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
shr ebx, 0x18
jmp 0x4babe2
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov byte [esp + 0x13], bl
test bl, bl
lea edx, [esp + 8]
cmovns eax, edx
mov ebx, ecx
cmp byte [esp + 0x18], 0
jns 0x4babf6
mov ebx, dword [ecx]
lea edi, [eax + esi]
cmp ebx, eax
jb 0x4bac05
cmp edi, ebx
ja 0x4bb0f3
test esi, esi
je 0x4bac14
push esi
push ebx
push eax
call fcn.00518c30
add esp, 0xc
cmp edi, str._.__
ja 0x4bac2a
lea eax, [edi + 7]
cmp eax, str._.__
ja 0x4bb0f6
mov dword [edi + 3], 0x26293f2a
mov dword [edi], 0x2a2e283d
xor eax, eax
mov byte [edi + 7], al
lea ecx, [esp + 0xa4]
push 0x200
lea eax, [esp + 0xc]
push eax
call fcn.00549f10
mov eax, dword [esp]
movzx ecx, byte [eax + 0xb]
test cl, cl
jns 0x4bac64
mov edx, dword [eax]
mov ecx, dword [eax + 4]
jmp 0x4bac69
and ecx, 0x7f
mov edx, eax
mov dword [esp + 0x1c], edx
add ecx, edx
pcmpeqd xmm0, xmm0
lea edi, [esp + 0x60]
movdqu xmmword [edi + 0x14], xmm0
movdqu xmmword [edi + 0x24], xmm0
xor ebx, ebx
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
mov byte [edi + 0x20], bl
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ebx
mov byte [edi + 0x2c], bl
mov byte [edi + 0x30], bl
mov dword [edi + 0x34], ebx
pxor xmm0, xmm0
movdqa xmmword [edi], xmm0
mov dword [edi + 0xd], ebx
mov dword [edi + 0x11], ebx
mov esi, ecx
lea ecx, [esp + 0xa4]
push ebx
push edi
push esi
push edx
call fcn.00549f80
mov byte [esp + 0x18], al
lea ecx, [esp + 0x20]
push ebx
push edi
push esi
push dword [esp + 0x28]
call fcn.0054a0e0
mov eax, dword [edi]
test eax, eax
je 0x4bace2
mov dword [esp + 0x64], eax
push eax
call fcn.0050fc7c
add esp, 4
mov esi, dword [esp + 0xc4]
test esi, esi
je 0x4bad28
xor ebx, ebx
dec ebx
mov eax, ebx
lock xadd dword [esi + 4], eax
test eax, eax
jne 0x4bad28
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov eax, dword [esi + 8]
test eax, eax
jne 0x4bb07a
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov esi, dword [esp + 0xa4]
xor eax, eax
dec eax
lock xadd dword [esi + 4], eax
test eax, eax
lea edi, [esp + 0x20]
je 0x4bb0da
cmp byte [esp + 0x13], 0
jns 0x4bad56
push dword [esp + 8]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x18], 0
je 0x4badbe
cmp byte [esp + 0x50], 0
je 0x4bb0f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
cmp ecx, 2
mov edx, edi
cmovae edx, eax
cmp byte [edx + 0x14], 0
je 0x4bb013
cmp ecx, 2
cmovae edi, eax
mov esi, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
mov ebx, edi
sub ebx, esi
cmp ebx, 0x7ffffff0
jae 0x4bb0d5
cmp ebx, 0xa
ja 0x4bb023
mov eax, dword [esp + 4]
mov byte [eax + 0xb], bl
jmp 0x4bb052
mov edx, dword [ebp + 8]
movzx ecx, byte [edx + 0xb]
test cl, cl
jns 0x4badce
mov esi, dword [edx + 4]
jmp 0x4badd3
mov esi, ecx
and esi, 0x7f
lea ebx, [esi + 5]
cmp ebx, 0x7ffffff0
jae 0x4bb0d5
cmp ebx, 0xa
jbe 0x4bae1a
mov dword [esp + 0x18], ebx
or ebx, 0xf
inc ebx
push ebx
mov edi, ecx
call fcn.00510d64
mov edx, dword [ebp + 8]
mov ecx, edi
add esp, 4
or ebx, 0x80000000
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], edi
shr ebx, 0x18
jmp 0x4bae2c
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov byte [esp + 0x13], bl
test bl, bl
lea ebx, [esp + 8]
cmovns eax, ebx
test cl, cl
jns 0x4bae3b
mov edx, dword [edx]
lea edi, [eax + esi]
mov ecx, edx
cmp edx, eax
jb 0x4bae4c
cmp edi, ecx
ja 0x4bb10f
test esi, esi
je 0x4bae5b
push esi
push ecx
push eax
call fcn.00518c30
add esp, 0xc
cmp edi, str._._
ja 0x4bae71
lea eax, [edi + 5]
cmp eax, str._._
ja 0x4bb112
mov dword [edi], 0x2a2e283d
mov word [edi + 4], 0x29
lea esi, [esp + 0xa4]
mov ecx, esi
push 0x200
push ebx
call fcn.00549f10
mov eax, dword [esp]
movzx ecx, byte [eax + 0xb]
test cl, cl
jns 0x4baea3
mov ecx, dword [eax + 4]
mov eax, dword [eax]
jmp 0x4baea6
and ecx, 0x7f
add ecx, eax
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x74], xmm0
movdqu xmmword [esp + 0x84], xmm0
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x80], bl
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov byte [esp + 0x8c], bl
mov byte [esp + 0x90], bl
mov dword [esp + 0x94], ebx
pxor xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x6d], ebx
mov dword [esp + 0x71], ebx
mov edi, ecx
mov ecx, esi
push ebx
lea edx, [esp + 0x64]
push edx
push edi
push eax
mov esi, eax
call fcn.00549f80
mov byte [esp], al
lea ecx, [esp + 0x20]
push ebx
lea eax, [esp + 0x64]
push eax
push edi
push esi
call fcn.0054a0e0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4baf3d
mov dword [esp + 0x64], eax
push eax
call fcn.0050fc7c
add esp, 4
mov esi, dword [esp + 0xc4]
test esi, esi
mov edi, 0xffffffff
je 0x4baf85
mov eax, edi
lock xadd dword [esi + 4], eax
test eax, eax
jne 0x4baf85
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov eax, dword [esi + 8]
test eax, eax
jne 0x4bb0c1
mov eax, dword [esi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov esi, dword [esp + 0xa4]
lock xadd dword [esi + 4], edi
test edi, edi
je 0x4bb0f9
cmp byte [esp + 0x13], 0
lea edi, [esp + 0x20]
jns 0x4bafb0
push dword [esp + 8]
call fcn.0050fc7c
add esp, 4
cmp byte [esp], 0
je 0x4bb013
cmp byte [esp + 0x50], 0
je 0x4bb115
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
cmp ecx, 2
mov edx, edi
cmovae edx, eax
cmp byte [edx + 0x14], 0
je 0x4bb013
cmp ecx, 2
cmovae edi, eax
mov esi, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
mov ebx, edi
sub ebx, esi
cmp ebx, 0x7ffffff0
jae 0x4bb0d5
cmp ebx, 0xa
ja 0x4bb08c
mov eax, dword [esp + 4]
mov byte [eax + 0xb], bl
jmp 0x4bb0bb
xor eax, eax
mov ecx, dword [esp + 4]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
jmp 0x4bb059
mov eax, ebx
or eax, 0xf
inc eax
mov dword [esp], eax
push eax
call fcn.00510d64
add esp, 4
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov edx, dword [esp]
or edx, 0x80000000
mov dword [ecx + 8], edx
mov dword [ecx + 4], ebx
jmp 0x4bb052
mov cl, byte [esi]
mov byte [eax], cl
inc esi
inc eax
cmp esi, edi
jne 0x4bb04c
mov byte [eax], 0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4bb06e
mov dword [esp + 0x24], eax
push eax
call fcn.0050fc7c
add esp, 4
mov eax, dword [esp + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lock xadd dword [esi + 8], ebx
test ebx, ebx
jne 0x4bad28
jmp 0x4bad17
mov eax, ebx
or eax, 0xf
inc eax
mov dword [esp], eax
push eax
call fcn.00510d64
add esp, 4
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov edx, dword [esp]
or edx, 0x80000000
mov dword [ecx + 8], edx
mov dword [ecx + 4], ebx
jmp 0x4bb0bb
mov cl, byte [esi]
mov byte [eax], cl
inc esi
inc eax
cmp esi, edi
jne 0x4bb0b5
jmp 0x4bb056
mov eax, edi
lock xadd dword [esi + 8], eax
test eax, eax
jne 0x4baf85
jmp 0x4baf74
call fcn.0052ce30
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
jmp 0x4bad43
int3
int3
int3
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
jmp 0x4baf99
int3
int3
int3