Function at 0x19df188
Capabilities:
Access peb ldr_data

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov edi, edx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x20], bl
mov eax, dword [esi + 0xcc]
xor eax, dword [0x1ac8490]
jne 0x1a37837
cmp byte [ebp + 0xc], bl
jne 0x1a3737c
mov edx, dword [ebp + 8]
cmp edx, dword [esi + 0x6c]
jb 0x19df495
mov eax, dword [esi + 0x74]
add eax, edx
mov dword [esp + 0x30], eax
cmp eax, dword [esi + 0x70]
jb 0x19df245
mov ecx, dword [esi + 0x240]
mov eax, dword [esi + 0x1e8]
add ecx, 3
shr eax, cl
cmp dword [esp + 0x30], eax
jb 0x19df245
push ebx
lea eax, [ebp + 8]
mov edx, edi
push eax
mov ecx, esi
call fcn.019dfc23
mov edx, dword [ebp + 8]
mov dword [esp + 0x18], eax
lea ecx, [edx - 0x201]
cmp ecx, 0xfbff
ja 0x19df277
push edx
mov edx, eax
mov ecx, esi
call fcn.019df6d0
mov eax, dword [esi + 0x74]
mov edi, dword [esi + 0x1e8]
mov ecx, dword [esi + 0x238]
shl eax, 3
sub edi, eax
mov eax, ecx
shr eax, 4
sub ecx, eax
cmp edi, ecx
jb 0x19df251
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edx
mov edx, edi
mov ecx, esi
call fcn.019df6d0
jmp 0x19df23c
mov ecx, dword [esi + 0x23c]
mov eax, ecx
shr eax, 2
sub ecx, eax
cmp edi, ecx
jbe 0x19df23c
mov ecx, esi
call fcn.019e00a6
mov dword [esi + 0x23c], edi
mov dword [esi + 0x238], edi
jmp 0x19df23c
mov ecx, eax
mov al, byte [edi + 6]
test al, al
je 0x1a373b3
movzx eax, al
and edi, 0xffff0000
shl eax, 0x10
sub edi, eax
add edi, 0x10000
lea eax, [edx*8 + 7]
add eax, ecx
mov dword [esp + 0x38], eax
cmp byte [eax], 3
je 0x19df49d
mov dword [esp + 0x24], ebx
mov ax, word [esi + 0x54]
cmp ax, word [ecx + 4]
je 0x19df50c
lea edx, [ecx + 0x101f]
and edx, 0xfffff000
lea eax, [ecx + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edx
cmp edx, eax
je 0x1a3764f
mov eax, dword [ebp + 8]
mov edx, eax
shl edx, 3
mov dword [esp + 0x2c], edx
add edx, ecx
mov dword [esp + 0x30], edx
cmp byte [esp + 0x20], bl
jne 0x19df2fa
add edx, 0xfffffff0
and edx, 0xfffff000
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x1c]
jb 0x1a377d6
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
cmp byte [ebp + 0xc], bl
jne 0x19df339
mov ecx, dword [esp + 0x38]
cmp byte [ecx], 3
mov ecx, dword [esp + 0x18]
je 0x19df339
test edx, edx
je 0x1a37662
cmp edx, dword [esi + 0x6c]
jb 0x1a37662
test edx, edx
je 0x1a376a8
inc dword [esi + 0x200]
lea eax, [esp + 0x10]
push 0x4000
push eax
lea edx, [esp + 0x1c]
call fcn.019e05d2
test eax, eax
js 0x1a37482
call fcn.019f1a00
test eax, eax
jne 0x1a3766a
mov eax, 0x7ffe0380
cmp byte [eax], bl
jne 0x1a3767d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x20], bl
jne 0x19df42e
add edx, eax
mov ax, word [esi + 0x54]
mov dword [esp + 0x24], edx
mov word [edx + 4], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
add eax, edx
cmp dword [esp + 0x30], eax
je 0x1a3772e
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov byte [edx + 7], bl
mov byte [edx + 2], bl
sub eax, dword [esp + 0x10]
sub eax, dword [esp + 0x14]
add eax, ecx
xor ecx, ecx
shr eax, 3
inc ecx
mov word [edx], ax
cmp dword [0x1ac84ac], ecx
jge 0x1a376b1
mov byte [edx + 3], bl
cmp dword [edi + 0x18], edi
je 0x1a3770b
mov eax, edx
sub eax, edi
shr eax, 0x10
inc eax
mov dword [esp + 0x38], eax
test eax, eax
jle 0x1a37712
cmp eax, 0xfe
jge 0x1a37712
mov byte [edx + 6], al
mov ecx, esi
movzx eax, word [edx]
push eax
call fcn.019df6d0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push edx
add eax, 0xffffffe8
mov edx, edi
push eax
call fcn.019deede
push dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.019df6d0
call fcn.019f1a00
mov edi, 0x7ffe0380
test eax, eax
jne 0x1a37750
mov eax, edi
cmp byte [eax], bl
jne 0x1a37763
call fcn.019f1a00
mov edi, 0x7ffe038a
test eax, eax
jne 0x1a377b1
mov eax, edi
cmp byte [eax], bl
je 0x19df23c
jmp 0x1a377c4
push edx
mov edx, edi
jmp 0x19df24a
add ecx, 8
lea edx, [ecx + edx*8]
mov ecx, esi
mov dword [esp + 0x34], edx
call fcn.019d5c59
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x14]
dec dword [edi + 0x30]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x14]
shr eax, 0xc
sub dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x14]
add dword [esi + 0x1e8], eax
dec dword [esi + 0x1f8]
mov eax, dword [ecx + 0x14]
cmp eax, 0x7f000
jb 0x19df4eb
sub dword [esi + 0x1ec], eax
mov eax, dword [ecx + 0x14]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
add edx, 0x20
shr eax, 3
add edx, eax
xor eax, eax
inc eax
mov dword [ebp + 8], edx
mov byte [esp + 0x20], al
jmp 0x19df2b2
mov dword [esp + 0x14], ecx
mov edx, ecx
mov ecx, edi
call fcn.019d775f
mov dword [esp + 0x1c], eax
cmp byte [ebp + 0xc], bl
jne 0x1a373ba
cmp dword [0x1ac84ac], 1
jge 0x1a373cb
mov eax, dword [ebp + 8]
mov ecx, eax
mov dl, byte [esp + 0x20]
shl ecx, 3
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x2c], ecx
test dl, dl
jne 0x19df555
add ecx, 0xfffffff0
and ecx, 0xfffff000
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
je 0x1a37420
push 0x4000
lea eax, [esp + 0x14]
push eax
lea edx, [esp + 0x1c]
call fcn.019e05d2
test eax, eax
js 0x1a37482
call fcn.019f1a00
test eax, eax
jne 0x1a374b6
mov eax, 0x7ffe0380
cmp byte [eax], bl
jne 0x1a374c9
mov ecx, dword [esp + 0x1c]
inc dword [esi + 0x200]
mov eax, dword [ecx + 0x14]
cmp eax, 0x7f000
jb 0x19df5b8
sub dword [esi + 0x1ec], eax
mov edx, ecx
mov ecx, esi
call fcn.019d5c59
mov ecx, dword [esp + 0x1c]
mov edx, ecx
mov eax, dword [esp + 0x10]
add dword [ecx + 0x14], eax
mov ecx, esi
call fcn.019d5cf0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
shr eax, 0xc
add dword [edi + 0x2c], eax
mov eax, dword [esp + 0x10]
sub dword [esi + 0x1e8], eax
mov eax, dword [ecx + 0x14]
cmp eax, 0x7f000
jb 0x19df5fd
add dword [esi + 0x1ec], eax
cmp byte [esp + 0x20], bl
jne 0x19df687
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x14]
mov ax, word [esi + 0x54]
mov dword [esp + 0x28], edx
mov word [edx + 4], ax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
cmp dword [esp + 0x2c], eax
je 0x1a37568
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov byte [edx + 7], bl
inc ecx
mov byte [edx + 2], bl
sub eax, dword [esp + 0x10]
shr eax, 3
mov word [edx], ax
cmp dword [0x1ac84ac], ecx
jge 0x1a374f2
mov byte [edx + 3], bl
cmp dword [edi + 0x18], edi
je 0x19df679
mov eax, edx
sub eax, edi
shr eax, 0x10
inc eax
mov dword [esp + 0x34], eax
test eax, eax
jle 0x1a3754c
cmp eax, 0xfe
jge 0x1a3754c
mov bl, al
movzx eax, word [edx]
mov ecx, esi
push eax
mov byte [edx + 6], bl
call fcn.019df6d0
call fcn.019f1a00
mov ebx, 0x7ffe0380
test eax, eax
jne 0x1a37586
mov eax, ebx
cmp byte [eax], 0
jne 0x1a37599
call fcn.019f1a00
mov edi, 0x7ffe038a
mov ebx, 0x230
test eax, eax
jne 0x1a375ed
mov eax, edi
cmp byte [eax], 0
je 0x19df23c
jmp 0x1a375fd
test byte [edi + 2], 8
je 0x1a373a5
dec dword [esi + 0x230]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.01a15877
test al, al
je 0x1a373a5
mov eax, dword [esp + 0x34]
sub dword [esi + 0x234], eax
mov edx, dword [ebp + 8]
mov ecx, edi
mov dword [esp + 0x18], ecx
jmp 0x19df279
mov edi, esi
jmp 0x19df298
test eax, eax
jne 0x19df526
mov ecx, dword [esp + 0x18]
jmp 0x19df2c0
test eax, eax
jne 0x19df533
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], ebx
je 0x1a373fb
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 0x1a37405
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push 0x19cc848
call fcn.019dafb0
xor eax, eax
pop ecx
lea ecx, [eax + 1]
call fcn.01a36019
jmp 0x19df533
cmp dword [0x1ac84ac], 1
jl 0x1a37478
test dl, dl
je 0x1a37478
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], ebx
je 0x1a37455
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 0x1a3745f
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push 0x19cc85c
call fcn.019dafb0
xor eax, eax
pop ecx
lea ecx, [eax + 1]
call fcn.01a36019
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x18]
push eax
jmp 0x19df248
push 3
pop edx
mov ecx, esi
call fcn.01a17a5c
cmp byte [esp + 0x20], bl
je 0x1a374ad
lea eax, [ebp + 8]
mov edx, edi
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
push dword [esp + 0x2c]
add eax, 0xffffffe8
push eax
call fcn.019deede
mov edx, dword [esp + 0x18]
jmp 0x1a37835
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x226
jmp 0x19df596
mov eax, dword fs:[0x30]
test byte [eax + 0x240], 1
je 0x19df59e
mov edx, dword [esp + 0x14]
mov ecx, esi
push 5
push dword [esp + 0x14]
call fcn.01a92eda
jmp 0x19df59e
cmp ax, cx
ja 0x19df650
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], ebx
je 0x1a37523
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 0x1a3752d
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push 0x19cc86c
call fcn.019dafb0
xor eax, eax
pop ecx
lea ecx, [eax + 1]
call fcn.01a36019
mov edx, dword [esp + 0x28]
jmp 0x19df650
push ebx
push ebx
push edi
push edx
mov edx, dword [edi + 0x18]
push 3
pop ecx
call fcn.01a36033
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
jmp 0x19df677
cmp dword [esi + 0x4c], ebx
je 0x19df687
mov al, byte [edx + 2]
xor al, byte [edx + 1]
xor al, byte [edx]
mov byte [edx + 3], al
mov eax, dword [esi + 0x50]
xor dword [edx], eax
jmp 0x19df687
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x226
jmp 0x19df69b
mov eax, dword fs:[0x30]
xor ecx, ecx
inc ecx
test byte [eax + 0x240], cl
je 0x19df6a4
call fcn.019f1a00
test eax, eax
je 0x1a375c6
mov eax, dword fs:[0x30]
mov ebx, dword [eax + 0x50]
add ebx, 0x226
movzx eax, byte [ebx]
mov ecx, esi
mov edx, dword [esp + 0x14]
push eax
push dword [esp + 0x28]
mov eax, dword [esi + 0x74]
push dword [esp + 0x28]
shl eax, 3
push eax
push dword [esp + 0x20]
call fcn.01a92df0
jmp 0x19df6a4
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, ebx
jmp 0x19df6bd
call fcn.019f1a00
test eax, eax
je 0x1a37611
mov eax, dword fs:[0x30]
mov edi, dword [eax + 0x50]
add edi, ebx
movzx eax, byte [edi]
push eax
push dword [esp + 0x28]
push dword [esp + 0x28]
jmp 0x1a37634
mov eax, dword fs:[0x30]
mov edi, dword [eax + 0x50]
add edi, 0x230
movzx eax, byte [edi]
push eax
push ebx
push ebx
mov eax, dword [esi + 0x74]
mov ecx, esi
mov edx, dword [esp + 0x20]
shl eax, 3
push eax
push dword [esp + 0x20]
call fcn.01a92df0
jmp 0x19df23c
add edx, 0x1000
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edx
jmp 0x19df2df
push eax
mov edx, ecx
jmp 0x19df248
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x226
jmp 0x19df374
mov eax, dword fs:[0x30]
xor ecx, ecx
inc ecx
test byte [eax + 0x240], cl
je 0x19df37c
mov edx, dword [esp + 0x14]
mov ecx, esi
push 6
push dword [esp + 0x14]
call fcn.01a92eda
jmp 0x19df37c
mov eax, dword [esp + 0x1c]
jmp 0x19df38c
cmp ax, cx
ja 0x19df3e9
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], ebx
je 0x1a376e2
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 0x1a376ec
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push 0x19cc888
call fcn.019dafb0
xor eax, eax
pop ecx
inc eax
mov ecx, eax
call fcn.01a36019
mov edx, dword [esp + 0x24]
jmp 0x19df3e9
mov al, bl
jmp 0x19df414
push ebx
push ebx
push edi
push edx
mov edx, dword [edi + 0x18]
push 3
pop ecx
call fcn.01a36033
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
jmp 0x19df414
cmp dword [esi + 0x4c], ebx
je 0x19df42e
mov ecx, dword [esp + 0x24]
mov al, byte [ecx + 2]
xor al, byte [ecx + 1]
xor al, byte [ecx]
mov byte [ecx + 3], al
mov eax, dword [esi + 0x50]
xor dword [ecx], eax
jmp 0x19df422
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x226
jmp 0x19df46c
mov eax, dword fs:[0x30]
xor ecx, ecx
inc ecx
test byte [eax + 0x240], cl
je 0x19df474
call fcn.019f1a00
test eax, eax
je 0x1a37790
mov eax, dword fs:[0x30]
mov edi, dword [eax + 0x50]
add edi, 0x226
movzx eax, byte [edi]
mov ecx, esi
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esi + 0x74]
push ebx
push ebx
shl eax, 3
push eax
push dword [esp + 0x20]
call fcn.01a92df0
jmp 0x19df474
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x230
jmp 0x19df488
call fcn.019f1a00
test eax, eax
je 0x1a3762e
jmp 0x1a3761f
xor eax, eax
inc eax
cmp dword [0x1ac84ac], eax
jl 0x1a37833
cmp byte [esp + 0x20], bl
je 0x1a37833
mov eax, dword fs:[0x30]
cmp dword [eax + 0xc], ebx
je 0x1a3780f
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 0x1a37819
push 0x19b4dbc
call fcn.019dafb0
pop ecx
push 0x19cc85c
call fcn.019dafb0
xor eax, eax
pop ecx
lea ecx, [eax + 1]
call fcn.01a36019
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov ecx, esi
push dword [ebp + 8]
jmp 0x19df24a