Function at 0x5ef7f0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x776130
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x25c
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x3c]
lea edx, [eax + 0x30]
push edx
call fcn.005d4e50
mov dword [ebp - 4], 2
push 0x839914
lea ecx, [ebp - 0x3c]
call fcn.005d4710
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.005d4770
lea ecx, [ebp - 0x268]
call fcn.005dc020
movzx ecx, word [ebp + 0x20]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x1c]
add esp, 0xffffffec
mov byte [esp + 0x10], 1
mov dword [esp], eax
lea eax, [ebp - 0x268]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov word [esp + 0xc], cx
call fcn.00617560
add esp, 0x14
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x10]
je 0x5ef8e9
mov ecx, dword [ebp - 0x1c]
push 0x2b
mov eax, dword [ecx]
call dword [eax + 0x28]
mov esi, eax
mov ecx, dword [ebp - 0x1c]
push 0x2d
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, dword [ebp + 0x28]
movzx edi, word [ebp + 0x24]
lea edx, [ebp - 0x268]
add esp, 0xffffffe4
mov dword [esp], edx
mov dword [esp + 0x18], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov word [esp + 0xc], di
mov word [esp + 0x10], si
mov word [esp + 0x14], ax
call fcn.00616630
add esp, 0x1c
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x248]
mov ecx, dword [ebp + 0x18]
push 0x2b
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x20], eax
sub esi, ebx
mov dword [ebp - 0x18], edx
and esi, 0xfffffffe
xor edi, edi
mov dword [ebp - 0x14], esi
mov esi, dword [ecx + 0x28]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], edi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x1c]
push 0x2d
mov eax, dword [ecx]
call dword [eax + 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp + 0x14]
lea ecx, [eax + ebx]
mov dword [ebp - 0x24], ecx
sar eax, 1
cdq
mov dword [ebp - 0x14], eax
mov ecx, esi
sub ecx, eax
mov eax, dword [ebp - 0x18]
sbb eax, edx
jl 0x5efd58
or ecx, eax
je 0x5efd58
sub esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
sbb dword [ebp - 0x18], edx
and eax, 7
cmp eax, 1
mov dword [ebp - 0x20], eax
jne 0x5ef9e0
mov eax, dword [ebp - 0x14]
test eax, eax
jle 0x5ef99c
movzx edx, word [ebx]
mov eax, edi
and eax, 0xff
test eax, eax
jne 0x5efb7e
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x14]
add ebx, 2
dec eax
test eax, eax
mov dword [ebp - 0x14], eax
jg 0x5ef972
mov eax, dword [ebp - 0x18]
sub eax, 0
jl 0x5efb02
or eax, esi
je 0x5efb02
mov eax, edi
and eax, 0xff
test eax, eax
jne 0x5efbbb
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x18]
add esi, 0xffffffff
adc eax, 0xffffffff
mov dword [ebp - 0x18], eax
sub eax, 0
jl 0x5efb02
jmp 0x5ef9a8
cmp eax, 4
jne 0x5efa9a
cmp ebx, dword [ebp - 0x24]
je 0x5efa9a
movzx eax, word [ebp - 0x2c]
movzx edx, word [ebx]
cmp edx, eax
je 0x5efa09
movzx eax, word [ebp - 0x28]
cmp edx, eax
jne 0x5efa9a
add ebx, 2
mov eax, edi
and eax, 0xff
test eax, eax
jne 0x5efc82
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x18]
sub eax, 0
jl 0x5efa5b
or eax, esi
je 0x5efa5b
mov eax, edi
and eax, 0xff
test eax, eax
jne 0x5efc00
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x18]
add esi, 0xffffffff
adc eax, 0xffffffff
mov dword [ebp - 0x18], eax
sub eax, 0
jge 0x5efa2d
mov eax, dword [ebp - 0x24]
sub eax, ebx
sar eax, 1
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x5efb02
movzx eax, word [ebx]
mov edx, edi
and edx, 0xff
test edx, edx
jne 0x5efc45
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x24]
add ebx, 2
dec eax
test eax, eax
mov dword [ebp - 0x24], eax
jg 0x5efa6d
jmp 0x5efb02
mov eax, dword [ebp - 0x18]
sub eax, 0
jl 0x5efad0
or eax, esi
je 0x5efad0
mov eax, edi
and eax, 0xff
test eax, eax
jne 0x5efcbf
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x18]
add esi, 0xffffffff
adc eax, 0xffffffff
mov dword [ebp - 0x18], eax
sub eax, 0
jge 0x5efaa2
mov eax, dword [ebp - 0x14]
test eax, eax
jle 0x5efb02
movzx eax, word [ebx]
mov edx, edi
and edx, 0xff
test edx, edx
jne 0x5efd04
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x14]
add ebx, 2
dec eax
test eax, eax
mov dword [ebp - 0x14], eax
jg 0x5efad7
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [edx], eax
mov dword [edx + 4], edi
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x40]
lea eax, [ebp - 0x268]
cmp edx, eax
je 0x5efb4d
test edx, edx
je 0x5efb4d
mov ecx, dword [ebp - 0x268]
lea eax, [ebp - 0x244]
sub ecx, edx
and ecx, 0xfffffffe
cmp edx, eax
je 0x5efb4d
cmp ecx, 0x80
jbe 0x5efd41
push edx
call fcn.007424fc
pop ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x18]
jae 0x5efbb0
mov word [eax], dx
mov edx, dword [ebp + 0x10]
add dword [edx + 0x14], 2
movzx eax, word [eax]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5ef986
mov ecx, dword [ebp + 0x10]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
jmp 0x5efb96
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, dword [eax + 0x18]
jae 0x5efbf1
movzx eax, word [ebp + 0x1c]
mov edx, dword [ebp + 0x10]
mov word [ecx], ax
add dword [edx + 0x14], 2
movzx eax, word [ecx]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5ef9c1
mov ecx, dword [ebp + 0x10]
movzx eax, word [ebp + 0x1c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
jmp 0x5efbd7
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x14]
cmp eax, dword [edx + 0x18]
jae 0x5efc36
movzx edx, word [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
mov word [eax], dx
add dword [ecx + 0x14], 2
movzx eax, word [eax]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5efa42
mov ecx, dword [ebp + 0x10]
movzx edx, word [ebp + 0x1c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
jmp 0x5efc1c
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, dword [edx + 0x18]
jae 0x5efc77
mov word [ecx], ax
mov eax, dword [ebp + 0x10]
add dword [eax + 0x14], 2
movzx eax, word [ecx]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5efa82
mov ecx, dword [ebp + 0x10]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
jmp 0x5efc5d
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x18]
jae 0x5efcb4
mov word [eax], dx
mov edx, dword [ebp + 0x10]
add dword [edx + 0x14], 2
movzx eax, word [eax]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5efa1d
mov ecx, dword [ebp + 0x10]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
jmp 0x5efc9a
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x14]
cmp eax, dword [edx + 0x18]
jae 0x5efcf5
movzx edx, word [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
mov word [eax], dx
add dword [ecx + 0x14], 2
movzx eax, word [eax]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5efab7
mov ecx, dword [ebp + 0x10]
movzx edx, word [ebp + 0x1c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
jmp 0x5efcdb
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, dword [edx + 0x18]
jae 0x5efd36
mov word [ecx], ax
mov eax, dword [ebp + 0x10]
add dword [eax + 0x14], 2
movzx eax, word [ecx]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5efaec
mov ecx, dword [ebp + 0x10]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
jmp 0x5efd1c
add esp, 0xfffffff8
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.005d3210
add esp, 8
jmp 0x5efb4d
mov eax, dword [ebp - 0x14]
test eax, eax
jle 0x5efb02
movzx eax, word [ebx]
mov edx, edi
and edx, 0xff
test edx, edx
jne 0x5efd8f
xor eax, eax
and edi, 0xffffff00
or edi, eax
mov eax, dword [ebp - 0x14]
add ebx, 2
dec eax
test eax, eax
mov dword [ebp - 0x14], eax
jg 0x5efd63
jmp 0x5efb02
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, dword [edx + 0x18]
jae 0x5efdbe
mov word [ecx], ax
mov eax, dword [ebp + 0x10]
add dword [eax + 0x14], 2
movzx eax, word [ecx]
mov edx, 1
movzx eax, ax
cmp eax, 0xffff
mov eax, 0
cmovne eax, edx
jmp 0x5efd74
mov ecx, dword [ebp + 0x10]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
jmp 0x5efda7