Function at 0x1a991c1
Capabilities:
Access peb ldr_data

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
and dword [ebp - 0xc], 0
xor eax, eax
and dword [ebp - 4], eax
push ebx
mov ebx, edx
mov dword [ebp - 8], eax
push esi
push edi
mov edi, ecx
mov esi, ebx
cmp ebx, dword [ebx + 0x28]
jae 0x1a99575
cmp dword [edi + 0x4c], 0
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
je 0x1a9920e
mov eax, dword [edi + 0x50]
xor dword [esi], eax
mov al, byte [esi + 2]
xor al, byte [esi + 1]
xor al, byte [esi]
cmp byte [esi + 3], al
je 0x1a9920e
push ecx
mov edx, esi
mov ecx, edi
call fcn.01a915a8
mov ax, word [esi + 4]
xor ax, word [edi + 0x54]
cmp word [ebp - 4], ax
jne 0x1a996fa
movzx eax, word [esi]
mov dl, byte [esi + 2]
mov ecx, eax
shl eax, 3
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
test dl, 1
je 0x1a992ac
cmp dword [ebp + 0x18], 0
je 0x1a9928c
test dl, 2
je 0x1a99254
mov ecx, esi
call fcn.01a110bd
mov ecx, dword [ebp - 0x10]
movzx eax, word [eax + 2]
jmp 0x1a99258
movzx eax, byte [esi + 3]
test ax, ax
je 0x1a9928c
jns 0x1a99273
and eax, 0x7fff
mov edx, 0x81
cmp ax, dx
jae 0x1a9928c
mov edx, dword [ebp + 0x1c]
jmp 0x1a99289
test eax, 0x800
jne 0x1a9928c
cmp ax, word [edi + 0x84]
jae 0x1a9928c
mov edx, dword [ebp + 0x18]
movzx eax, ax
add dword [edx + eax*4], ecx
test byte [esi + 2], 4
je 0x1a9949a
mov edx, esi
mov ecx, edi
call fcn.01a8428f
test al, al
je 0x1a9974e
jmp 0x1a9949a
test byte [edi + 0x40], 0x40
mov al, dl
setne cl
shr al, 2
and cl, al
test cl, 1
je 0x1a9948d
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov dword [ebp - 0x14], eax
test dl, 2
je 0x1a992dc
cmp eax, 4
jbe 0x1a992dc
sub eax, 4
mov dword [ebp - 0x14], eax
test dl, 8
je 0x1a99472
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ecx + 4]
cmp dword [edx], eax
jne 0x1a9945a
lea ecx, [esi + 8]
cmp dword [edx], ecx
mov ecx, dword [ebp - 0x14]
jne 0x1a9945a
mov eax, dword [ebp - 0x10]
sub dword [edi + 0x74], eax
mov edx, dword [edi + 0xb4]
test edx, edx
je 0x1a99340
movzx ecx, word [esi]
jmp 0x1a99327
mov eax, dword [edx]
test eax, eax
je 0x1a9936f
mov edx, eax
cmp ecx, dword [edx + 4]
jae 0x1a9931f
mov eax, ecx
push ecx
push eax
lea eax, [esi + 8]
mov ecx, edi
push eax
push 1
call fcn.019e0895
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
mov dword [ecx + 4], eax
test byte [esi + 2], 8
je 0x1a99375
mov edx, esi
mov ecx, edi
call fcn.019edfaf
test al, al
jne 0x1a99375
movzx eax, word [esi]
mov edx, esi
push 1
push eax
mov ecx, edi
call fcn.019df188
jmp 0x1a99569
mov eax, dword [edx + 4]
dec eax
jmp 0x1a9932e
movzx ecx, word [esi]
lea eax, [edi + 0xc0]
xor edx, edx
mov dword [ebp - 0x18], ecx
mov byte [esi + 2], dl
mov byte [esi + 7], dl
cmp dword [edi + 0xb4], edx
je 0x1a993a4
mov edx, ecx
mov ecx, edi
call fcn.019de9b4
mov ecx, eax
lea eax, [edi + 0xc0]
jmp 0x1a993a6
mov ecx, dword [eax]
cmp eax, ecx
je 0x1a993db
mov edx, dword [edi + 0x4c]
test edx, edx
je 0x1a993c3
mov eax, dword [ecx - 8]
mov edx, dword [edi + 0x4c]
test edx, eax
je 0x1a993be
xor eax, dword [edi + 0x50]
movzx eax, ax
jmp 0x1a993c7
movzx eax, word [ecx - 8]
movzx eax, ax
cmp dword [ebp - 0x18], eax
jbe 0x1a993db
mov ecx, dword [ecx]
lea eax, [edi + 0xc0]
cmp eax, ecx
jne 0x1a993ad
mov eax, dword [ecx + 4]
cmp dword [eax], ecx
jne 0x1a993f1
lea edx, [esi + 8]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [eax], edx
mov dword [ecx + 4], edx
jmp 0x1a99402
push 0
push dword [eax]
xor edx, edx
push 0
push ecx
push 0xc
pop ecx
call fcn.01a36033
movzx eax, word [esi]
add dword [edi + 0x74], eax
mov edx, dword [edi + 0xb4]
test edx, edx
je 0x1a99435
movzx ecx, word [esi]
jmp 0x1a9941f
mov eax, dword [edx]
test eax, eax
je 0x1a99454
mov edx, eax
cmp ecx, dword [edx + 4]
jae 0x1a99417
mov eax, ecx
push ecx
push eax
lea eax, [esi + 8]
mov ecx, edi
push eax
push 1
call fcn.019de8ff
cmp dword [edi + 0x4c], 0
je 0x1a99569
mov al, byte [esi + 1]
xor al, byte [esi]
xor al, byte [esi + 2]
mov byte [esi + 3], al
mov eax, dword [edi + 0x50]
xor dword [esi], eax
jmp 0x1a99569
mov eax, dword [edx + 4]
dec eax
jmp 0x1a99426
push 0
push dword [edx]
mov edx, edi
push eax
lea eax, [esi + 8]
push eax
push 0xc
pop ecx
call fcn.01a36033
jmp 0x1a99569
push 0xfeeefeee
push eax
lea eax, [esi + 0x10]
push eax
call fcn.01a365b0
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
jne 0x1a995b1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
inc dword [eax]
movzx eax, word [esi]
add dword [ecx], eax
mov al, byte [esi + 6]
test al, al
je 0x1a994b9
movzx eax, al
mov ecx, esi
shl eax, 0x10
and ecx, 0xffff0000
sub ecx, eax
add ecx, 0x10000
jmp 0x1a994bb
mov ecx, edi
cmp ecx, ebx
jne 0x1a996b6
cmp byte [esi + 7], 3
jne 0x1a99550
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x1a99648
inc dword [ebp - 8]
shr eax, 0xc
add dword [ebp - 0xc], eax
cmp dword [edi + 0x4c], 0
je 0x1a994f7
mov al, byte [esi + 1]
xor al, byte [esi]
xor al, byte [esi + 2]
mov byte [esi + 3], al
mov eax, dword [edi + 0x50]
xor dword [esi], eax
mov eax, dword [esi + 0x1c]
add esi, 0x20
add esi, eax
cmp esi, dword [ebx + 0x28]
je 0x1a9954a
cmp dword [edi + 0x4c], 0
je 0x1a99526
mov eax, dword [edi + 0x50]
xor dword [esi], eax
mov al, byte [esi + 2]
xor al, byte [esi + 1]
xor al, byte [esi]
cmp byte [esi + 3], al
je 0x1a99526
push ecx
mov edx, esi
mov ecx, edi
call fcn.01a915a8
mov ax, word [edi + 0x54]
cmp ax, word [esi + 4]
jne 0x1a99601
cmp dword [edi + 0x4c], 0
je 0x1a9954a
mov al, byte [esi + 2]
xor al, byte [esi + 1]
xor al, byte [esi]
mov byte [esi + 3], al
mov eax, dword [edi + 0x50]
xor dword [esi], eax
and dword [ebp - 4], 0
jmp 0x1a99569
cmp dword [edi + 0x4c], 0
je 0x1a99566
mov al, byte [esi + 1]
xor al, byte [esi]
xor al, byte [esi + 2]
mov byte [esi + 3], al
mov eax, dword [edi + 0x50]
xor dword [esi], eax
add esi, dword [ebp - 0x18]
cmp esi, dword [ebx + 0x28]
jb 0x1a991e7
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
cmp dword [ebx + 0x2c], esi
je 0x1a9978a
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a9976b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a99775
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a995da
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a995e4
push 0x19b4dbc
call fcn.019dafb0
mov eax, dword [ebp - 0x10]
pop ecx
add eax, 8
add eax, esi
push eax
push esi
push 0x19cea88
call fcn.019dafb0
add esp, 0xc
jmp 0x1a9974e
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a9962a
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a99634
push 0x19b4dbc
call fcn.019dafb0
movzx eax, word [edi + 0x54]
pop ecx
movzx ecx, word [esi + 4]
xor ecx, eax
push ecx
push esi
push 0x19ceb28
jmp 0x1a995f4
movzx eax, word [esi]
lea eax, [esi + eax*8]
cmp eax, dword [ebx + 0x28]
je 0x1a99695
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a9967c
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a99686
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push dword [ebx + 0x28]
push esi
push 0x19ceaf4
jmp 0x1a995f4
cmp dword [edi + 0x4c], 0
je 0x1a996ab
mov cl, byte [esi + 2]
xor cl, byte [esi + 1]
xor cl, byte [esi]
mov byte [esi + 3], cl
mov ecx, dword [edi + 0x50]
xor dword [esi], ecx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a996df
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a996e9
push 0x19b4dbc
call fcn.019dafb0
movzx eax, byte [esi + 6]
pop ecx
push eax
push esi
push 0x19ceac0
jmp 0x1a995f4
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a99723
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a9972d
push 0x19b4dbc
call fcn.019dafb0
mov eax, dword [ebp - 4]
pop ecx
movzx ecx, word [esi + 4]
movzx eax, ax
push eax
movzx eax, word [edi + 0x54]
xor ecx, eax
push ecx
push esi
push 0x19cea40
call fcn.019dafb0
add esp, 0x10
cmp dword [edi + 0x4c], 0
je 0x1a99764
mov al, byte [esi + 2]
xor al, byte [esi + 1]
xor al, byte [esi]
mov byte [esi + 3], al
mov eax, dword [edi + 0x50]
xor dword [esi], eax
xor al, al
jmp 0x1a996ad
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push esi
push dword [ebx + 0x2c]
push ebx
push 0x19ceb60
call fcn.019dafb0
add esp, 0x10
jmp 0x1a99764
cmp dword [ebx + 0x30], eax
je 0x1a996ab
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], 0
je 0x1a997bc
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
add eax, 0x2c
push eax
push 0x19b4db0
call fcn.019dafb0
pop ecx
jmp 0x1a997c6
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push dword [ebp - 8]
push dword [ebx + 0x30]
push ebx
push 0x19cebb0
jmp 0x1a99780