Function at 0x1006e2fd
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18c
mov eax, dword [0x100cea68]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x100d4fb8
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x44]
lea ecx, [ebp - 0xa4]
inc dword [0x100d5670]
neg eax
or dword [ebp - 0x70], 0xffffffff
xor esi, esi
mov edi, dword [ebx + 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x18]
and al, 2
mov dword [ebp - 0x34], esi
movzx eax, al
neg eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x74], SysReAllocStringLen
sbb eax, eax
mov dword [ebp - 0xa4], esi
and eax, ecx
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x90], eax
mov eax, dword [0x100d567c]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x28]
mov ecx, eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xcc], eax
call fcn.10061633
lea eax, [ebx + 4]
mov ecx, eax
mov dword [ebp - 0x40], eax
call fcn.100664e2
test eax, eax
je 0x1006ee66
test byte [edi + 0x72], 0x20
mov eax, dword [ebp + 0x1c]
jne 0x1006e3ad
and eax, 0xfffffe0
test byte [edi + 0x50], 0x40
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x18]
je 0x1006e3bf
or eax, 8
mov dword [ebp + 0x18], eax
test dword [ebp + 0xc], 0x200
je 0x1006e3d0
or eax, 0x10000
mov dword [ebp + 0x18], eax
mov eax, dword [ebx + 0x44]
xor edi, edi
inc edi
mov dword [ebp - 0x78], edi
test eax, eax
jle 0x1006e3e9
mov ecx, eax
mov dword [ebp - 0xc], eax
neg ecx
mov dword [ebp - 0x34], ecx
jmp 0x1006e45c
jns 0x1006e3f5
lea ecx, [ebx + 0x2c]
call fcn.1005c8dc
jmp 0x1006e459
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x1006e45c
test byte [ebp + 0xc], 0xa
je 0x1006e45c
lea ecx, [ebx + 0xc]
call fcn.100653f5
test eax, eax
je 0x1006e456
mov ecx, dword [ebp - 0x40]
call fcn.10065b03
cmp word [eax + 0x38], si
jne 0x1006e456
push 5
pop ecx
lea esi, [ebx + 0xc]
lea edi, [ebp - 0xc0]
rep movsd dword es:[edi], dword [esi]
push 2
lea ecx, [ebp - 0xc0]
call fcn.100650e1
lea ecx, [ebx + 0x2c]
mov dword [ebp - 0xc], eax
call fcn.1005c8dc
or dword [ebp + 0x18], 0x1000
xor edi, edi
inc edi
xor esi, esi
mov dword [ebp - 0xa8], edi
jmp 0x1006e459
xor edi, edi
inc edi
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x3c], eax
test byte [ecx + 0x4c], 0x10
jne 0x1006e470
movzx eax, byte [ecx + 0x72]
and eax, edi
jne 0x1006e48f
test dword [ebp + 0x14], 0x20000000
je 0x1006e48f
mov ecx, dword [ebp + 8]
call fcn.1007122c
test eax, eax
je 0x1006e48f
mov ecx, dword [ebp - 0x14]
push edi
push edi
call fcn.1005a1e2
mov edx, dword [ebp - 0x50]
test edx, 0xb000001f
je 0x1006e50d
mov ecx, dword [ebp - 0x14]
test byte [ecx + 0x4c], 0x10
jne 0x1006e4ab
movzx eax, byte [ecx + 0x72]
and eax, edi
jne 0x1006e50d
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x34]
and eax, edx
test al, 0x1f
jne 0x1006e4f3
mov eax, dword [ebp + 8]
test edx, 0x10000000
je 0x1006e4c9
cmp byte [eax + 0x3b], 0
jne 0x1006e4f3
test edx, edx
jns 0x1006e4d3
cmp byte [eax + 0x39], 0
jne 0x1006e4f3
test edx, 0x20000000
je 0x1006e50d
cmp byte [eax + 0x38], 0
je 0x1006e50d
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x1006e4ed
mov eax, dword [eax + 0x1c]
jmp 0x1006e4ef
mov eax, esi
test eax, eax
je 0x1006e50d
test edx, 0xffffffe3
jne 0x1006e506
mov eax, 0x8000
or word [ecx + 0x56], ax
jmp 0x1006e50d
push edi
push edi
call fcn.1005a1e2
push dword [ebp + 0x18]
mov ecx, dword [ebp + 8]
push dword [ebp + 0x14]
call fcn.10070f57
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0xac], eax
je 0x1006ef96
test dword [ebp + 0xc], 0x40000000
mov dword [ebp - 0x94], esi
jne 0x1006e5e5
mov eax, dword [ebp - 0x14]
add eax, 0x38
mov dword [ebp - 0x94], eax
je 0x1006e5e5
push 6
xor eax, eax
lea edi, [ebp - 0x148]
pop ecx
rep stosd dword es:[edi], eax
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0xc]
add edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x4c], edi
call fcn.10065b03
cmp word [eax + 0x38], si
je 0x1006e5c2
mov ecx, 0x400
test word [eax + 0x2a], cx
jne 0x1006e5c2
xor edi, edi
lea eax, [ebp - 0x48]
inc edi
mov ecx, ebx
push edi
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.100701c4
cmp dword [ebx + 0x44], 0
mov eax, dword [ebx + 0x18]
jge 0x1006e5a7
sub eax, dword [ebx + 0x44]
cmp dword [ebp - 0x48], eax
jg 0x1006e5bf
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x7c]
sub eax, edi
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x3c], eax
jmp 0x1006e5c5
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x148]
add eax, edi
push ecx
mov ecx, dword [ebp - 0x94]
push eax
push edi
push esi
push esi
push 0x3fffffff
push dword [ebp - 0x40]
call fcn.10066ce3
push dword [ebp - 0x34]
lea esi, [ebx + 0x2c]
mov ecx, esi
call fcn.1005c62c
mov eax, dword [ebx + 0x18]
lea edi, [ebp - 0x88]
add eax, dword [ebp - 0x34]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x1006e6cc
mov ecx, dword [ebp - 0x14]
mov edi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x44], edi
call fcn.10058f66
test eax, eax
je 0x1006e66b
push dword [ebp - 0x40]
lea ecx, [ebp - 0x110]
call fcn.100659b1
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x1006e650
push edi
lea ecx, [ebp - 0xdc]
call fcn.1005c62c
push edi
lea ecx, [ebp - 0x108]
call fcn.100776c6
lea eax, [ebp - 0x44]
push eax
push esi
push dword [ebp - 0xc]
lea ecx, [ebp - 0x110]
call fcn.100661a5
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
jmp 0x1006e66d
mov eax, esi
push eax
lea ecx, [ebp - 0x88]
call fcn.1005c62c
sub edi, dword [ebp - 0x18]
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 0x38]
add edi, dword [ebp - 0xc]
push esi
push ecx
push edi
mov edi, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x20]
add eax, edi
push eax
push dword [ebp - 0x14]
call fcn.10078482
neg edi
mov dword [ebp - 0x48], eax
push edi
lea ecx, [ebp - 0x88]
call fcn.1005c62c
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x1006e6cc
mov edi, dword [ebp + 0x10]
push eax
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
xor esi, esi
mov edi, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x64], eax
movzx ecx, byte [edi + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x48], eax
call fcn.10059025
mov dword [ebp - 0x98], eax
lea eax, [ecx - 0xc]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x18]
mov ecx, eax
and ecx, 0x100
mov dword [ebp - 0x60], ecx
mov ecx, dword [edi]
and ecx, dword [ebp + 0x14]
mov edx, ecx
and edx, 0x100
mov dword [ebp - 0xc4], edx
test ecx, 0x10000000
je 0x1006e739
test eax, 0x10000
je 0x1006e739
xor ecx, ecx
inc ecx
mov dword [ebp - 0x9c], ecx
jmp 0x1006e742
xor ecx, ecx
mov dword [ebp - 0x9c], esi
inc ecx
mov al, byte [edi + 4]
cmp al, 0xa
je 0x1006e750
mov dword [ebp - 0x6c], esi
cmp al, 0x11
jne 0x1006e753
mov dword [ebp - 0x6c], ecx
xor eax, eax
mov dword [ebp - 0x7c], ecx
lea edi, [ebp - 0xc0]
stosd dword es:[edi], eax
lea ecx, [ebp - 0x130]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebx + 0xc]
push eax
call fcn.10077616
mov ecx, dword [ebp - 0x60]
mov eax, 0x80
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x8c], esi
test ecx, ecx
jne 0x1006e7c6
cmp word [edi + 0x54], si
jge 0x1006e7c6
test dword [ebp + 0x14], 0x20000000
je 0x1006e7c6
test byte [edi + 0x56], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0x60], 1
je 0x1006e7cb
cmp byte [eax + 4], cl
mov dword [ebp - 0xa0], 1
sete cl
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x60]
jmp 0x1006e7cc
mov eax, dword [ebp + 8]
jmp 0x1006e7cc
inc ecx
test ecx, ecx
je 0x1006e806
cmp dword [ebp - 0x6c], 0
jne 0x1006e806
movsx ecx, word [eax + 6]
lea edx, [ebp - 0x30]
call fcn.10063083
mov ecx, dword [ebp - 0x30]
mov eax, ecx
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x2c]
or eax, ecx
mov dword [ebp - 0x64], ecx
jne 0x1006e806
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 4]
call fcn.1005fe40
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
cmp word [edi + 0x54], si
jge 0x1006e820
mov ecx, dword [ebp + 0x18]
test ecx, 0x2000
jne 0x1006e820
or ecx, 0x1000
mov dword [ebp + 0x18], ecx
cmp dword [ebp - 0xc], 0
jle 0x1006ee70
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x1006ee70
cmp dword [eax + 4], esi
je 0x1006ee70
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x44], 1
call fcn.1005d1e6
cwde
mov ecx, edi
push eax
call fcn.1005abf9
cmp dword [ebp - 0xac], 0
lea edi, [ebp - 0x110]
push 0x10
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
je 0x1006e885
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x110]
movsx eax, word [eax + 0x20]
push eax
call fcn.10070e60
cmp dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
je 0x1006e9a1
test dword [ebp - 0x110], 0x800000
je 0x1006e8ae
mov ecx, dword [ebp + 0x14]
mov edi, ecx
jmp 0x1006e9ba
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x1006e8ce
mov edi, dword [ebp + 0x14]
xor esi, esi
and edi, 0xfffffeff
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 8], edi
jmp 0x1006e9c5
push dword [ebp - 0x20]
lea ecx, [ebp - 0x130]
call fcn.10077698
push dword [ebp - 0x84]
mov ecx, dword [ebp - 0x88]
call fcn.10058f44
xor esi, esi
mov edi, esi
mov dword [ebp - 8], edi
mov eax, dword [eax]
sub eax, dword [ebp - 0x80]
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x1006e96c
lea ecx, [ebp - 0x130]
call fcn.10064e7d
movzx eax, ax
cmp eax, 7
je 0x1006e998
mov dword [ebp - 0x2c], eax
add eax, 0xffff0007
cmp eax, 2
ja 0x1006e934
push esi
lea ecx, [ebp - 0x130]
call fcn.100654c7
test eax, eax
jne 0x1006e97f
push esi
lea ecx, [ebp - 0x130]
call fcn.10077783
mov ecx, dword [ebp - 0x2c]
mov edi, eax
add ecx, 0xfffffff6
cmp ecx, 3
ja 0x1006e961
push 0xfff9
lea ecx, [ebp - 0x130]
call fcn.100654c7
test eax, eax
jne 0x1006e98d
add dword [ebp - 8], edi
mov edi, dword [ebp - 8]
cmp edi, dword [ebp - 0x24]
jl 0x1006e900
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 8], edi
test eax, eax
je 0x1006ee0a
jmp 0x1006e9c5
mov dword [ebp - 0x18], 2
mov eax, edi
mov dword [ebp - 0x10], eax
jmp 0x1006e96f
mov eax, dword [ebp - 8]
lea ecx, [edi + 2]
mov dword [ebp - 0x18], ecx
jmp 0x1006e988
mov dword [ebp - 0x18], 1
jmp 0x1006e986
mov eax, dword [ebp - 0x110]
mov edx, 0x800120
mov ecx, dword [ebp + 0x14]
and eax, edx
mov edi, ecx
mov dword [ebp - 8], edi
cmp eax, edx
jne 0x1006e9c3
and edi, 0xfffffeff
mov dword [ebp - 8], edi
xor esi, esi
test dword [ebp - 0x110], 0x40000
je 0x1006ea3a
and edi, 0xd5ffffff
mov dword [ebp - 8], edi
xor edi, edi
inc edi
mov edx, dword [ebp + 0x14]
lea esi, [ebp - 0x110]
mov eax, edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x58], edi
and edx, 0x8000000
push 0x10
pop ecx
lea edi, [ebp - 0x188]
mov dword [ebp - 0x5c], edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x24], ecx
cmp eax, 1
jle 0x1006ed14
cmp dword [ebp - 0x44], 0
mov eax, dword [ecx]
mov dword [ebp - 0x10], eax
je 0x1006ecdc
and dword [ebp - 0x44], 0
and dword [ebp - 8], 0xd7ffffff
and dword [ebp + 0x18], 0xffefffff
jmp 0x1006ed03
cmp dword [ebp - 0x9c], 0
je 0x1006ea8a
mov cl, byte [ebp - 0x10c]
xor edi, edi
movzx eax, cl
inc edi
sub eax, 0x34
cmp eax, edi
jbe 0x1006ea5a
test cl, cl
jne 0x1006e9dd
lea ecx, [ebp - 0x110]
call fcn.1007129d
test eax, eax
jne 0x1006e9dd
or dword [ebp - 8], 0x20000000
lea eax, [ebp - 0x10a]
push eax
push 0x34
xor dl, dl
pop ecx
call fcn.1005f4a8
jmp 0x1006e9dd
cmp dword [ebp - 0x60], 0
je 0x1006e9da
push dword [ebp - 0x84]
mov ecx, dword [ebp - 0x88]
call fcn.10058f44
mov edx, dword [ebp - 0x10]
mov eax, dword [eax]
sub eax, dword [ebp - 0x80]
cmp edx, eax
jl 0x1006eab6
mov edx, eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xc]
cmp eax, edx
jge 0x1006eac0
mov dword [ebp - 0x10], eax
mov cl, byte [ebp - 0x10c]
cmp cl, 0xa
jne 0x1006eb13
test byte [ebp + 0x18], 1
je 0x1006eb1f
mov eax, dword [ebp + 8]
cmp byte [eax + 4], cl
je 0x1006eb1f
and edi, 0xf7ffffff
mov dword [ebp - 8], edi
test edi, 0x20000000
je 0x1006e9da
movsx ecx, word [eax + 6]
xor edx, edx
call fcn.10063083
cmp eax, 0x40000
jne 0x1006eb08
cmp edx, esi
je 0x1006e9da
and edi, 0xdfffffff
jmp 0x1006e9d7
cmp cl, 0x11
je 0x1006eb1f
xor edi, edi
mov eax, esi
inc edi
jmp 0x1006eb24
xor edi, edi
inc edi
mov eax, edi
mov edx, dword [ebp - 0x6c]
cmp eax, edx
je 0x1006eb85
test edx, edx
je 0x1006eb33
mov al, cl
jmp 0x1006eb39
mov eax, dword [ebp + 8]
mov al, byte [eax + 4]
movzx eax, al
cmp eax, 0xb
ja 0x1006eb8d
mov ecx, dword [ebp - 8]
or ecx, 0x8000000
mov dword [ebp - 8], ecx
test edx, edx
je 0x1006eb59
mov byte [ebp - 0xe6], al
jmp 0x1006eb72
mov al, byte [ebp - 0xe6]
cmp al, 0xb
ja 0x1006eb72
and ecx, 0xf7ffffff
mov byte [ebp - 0x10c], al
mov dword [ebp - 8], ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x130]
call fcn.10077698
jmp 0x1006e9dd
test edx, edx
jne 0x1006e9dd
movzx eax, cl
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.1005fe40
mov ecx, dword [ebp - 0x68]
and eax, ecx
and edx, dword [ebp - 0x64]
and eax, 0xffffff3f
or eax, edx
mov dword [ebp - 0x5c], edi
jne 0x1006ebb1
mov dword [ebp - 0x5c], esi
cmp dword [ebp - 0xc8], 3
jbe 0x1006ebcf
mov eax, dword [ebp - 0x64]
and ecx, 0xf00000
and eax, 0x78000000
mov dword [ebp - 0x24], esi
or ecx, eax
je 0x1006ebd2
mov dword [ebp - 0x24], edi
push dword [ebp - 0x20]
and dword [ebp - 8], 0xf7ffffff
lea ecx, [ebp - 0x130]
call fcn.10077698
lea ecx, [ebp - 0x130]
call fcn.10064e7d
mov ecx, 0x80
cmp ax, cx
sbb edx, edx
neg edx
mov dword [ebp - 0x58], edx
je 0x1006ec07
or dword [ebp + 0x18], 8
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx - 0xc]
cmp eax, 3
jbe 0x1006ec1d
lea eax, [ecx - 0x2f]
mov dword [ebp - 0x2c], esi
cmp eax, 3
ja 0x1006ec20
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x98], 0
jne 0x1006ec35
call fcn.10059025
mov edx, dword [ebp - 0x58]
test eax, eax
je 0x1006ec78
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
jne 0x1006ec7e
cmp dword [ebp - 0x5c], 0
jne 0x1006ec5c
cmp byte [ebp - 0x10c], 9
je 0x1006ec5c
and dword [ebp - 8], 0xdfffffff
and dword [ebp + 0x18], 0xffefffff
mov esi, dword [ebp - 0x10]
push edx
push ecx
push ecx
push esi
lea ecx, [ebp - 0x130]
call fcn.100777df
sub esi, eax
mov dword [ebp - 0x10], esi
jmp 0x1006e9dd
mov ecx, dword [ebp - 0x8c]
test edx, edx
je 0x1006ec3f
mov eax, dword [ebp - 0x68]
and eax, 0xc0
cmp eax, 0xc0
je 0x1006ec9d
cmp dword [ebp - 0x24], 0
jne 0x1006ec9d
cmp dword [ebp - 0x6c], 0
je 0x1006ec3f
cmp dword [ebp - 0xa0], 0
mov eax, dword [ebp + 8]
je 0x1006ecbe
cmp dword [ebp - 0x2c], 0
jne 0x1006ecbe
cmp byte [eax + 4], 0
je 0x1006ecbe
and dword [ebp - 8], 0xdfffffff
jmp 0x1006ec5c
cmp dword [ebp - 0x5c], 0
je 0x1006ecd3
test ecx, ecx
jne 0x1006ecd3
cmp byte [eax + 4], cl
jne 0x1006ec5c
test byte [ebp + 0x18], 1
je 0x1006ec5c
or dword [ebp - 8], 0x8000000
jmp 0x1006ec5c
mov eax, dword [ebp - 8]
or eax, 0x20000000
mov dword [ebp - 0x44], 1
cmp byte [ebp - 0x10c], 9
mov dword [ebp - 8], eax
je 0x1006ed03
test edx, edx
je 0x1006ed03
or eax, 0x8000000
mov dword [ebp - 8], eax
push 0x10
pop ecx
lea esi, [ebp - 0x188]
lea edi, [ebp - 0x110]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 8]
mov eax, ecx
test edx, edx
je 0x1006ed2a
test ecx, 0x8000000
jne 0x1006ed2a
and eax, 0xfdffffff
push dword [ebp - 0x50]
lea ecx, [ebp - 0x110]
push dword [ebp + 0x18]
push eax
push dword [ebp + 8]
call fcn.10070649
mov esi, eax
test esi, esi
jne 0x1006ee46
mov edi, dword [ebp - 0x38]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x110]
mov ecx, edi
push eax
call fcn.100679d0
mov esi, eax
test esi, esi
jne 0x1006ee46
cmp dword [ebp - 0x7c], eax
je 0x1006ed7b
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x7c], esi
mov ecx, dword [ecx + 0x28]
call fcn.1006b129
push dword [ebp - 0x90]
push ecx
push edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x88]
push dword [ebp - 0x54]
call fcn.1005d03c
mov edi, eax
cmp edi, dword [ebp - 0x10]
jge 0x1006eda1
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x58], esi
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x54]
add ecx, 4
mov dword [ebp - 0x10], edi
call fcn.10067748
cmp edi, 0x3fffffff
je 0x1006ee12
cmp dword [ebp - 0xa4], 0
mov ecx, dword [ebp - 0x20]
je 0x1006edd9
cmp ecx, dword [ebp - 0x74]
jge 0x1006edce
mov dword [ebp - 0x74], ecx
lea eax, [edi + ecx]
cmp eax, dword [ebp - 0x70]
jle 0x1006edd9
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x2c]
add ecx, edi
sub dword [ebp - 0xc], edi
inc eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x24]
add ecx, 4
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
cmp eax, 1
jg 0x1006ee04
cmp dword [ebp - 0x58], 0
je 0x1006ee04
mov edx, dword [ebp - 0x5c]
jmp 0x1006ea0b
mov eax, dword [ebp - 0x48]
mov dword [ebp + 0x18], eax
mov edi, dword [ebp - 0x14]
jmp 0x1006e820
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x1006ee21
call fcn.10068650
cmp dword [ebp - 0xc0], 0
je 0x1006ee36
push dword [ebp - 0xc0]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [ebp - 0xb0]
call fcn.100754e7
jmp 0x1006f02f
cmp dword [ebp - 0xc0], 0
je 0x1006ee5b
push dword [ebp - 0xc0]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [ebp - 0xb0]
call fcn.100754e7
mov edi, esi
mov dword [ebp - 0x78], edi
jmp 0x1006f02f
cmp dword [ebp - 0xc0], 0
je 0x1006ee85
push dword [ebp - 0xc0]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [ebp - 0xb0]
call fcn.100754e7
lea ecx, [ebx + 0x2c]
call fcn.1005c8b7
lea ecx, [ebp - 0x88]
call fcn.1005c8dc
push dword [ebp - 0x38]
lea ecx, [ebp - 0x88]
push dword [ebx + 0x30]
call fcn.1005ce95
test eax, eax
je 0x1006eed0
cmp dword [ebp - 0x90], 0
je 0x1006eed0
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.1006d00d
mov eax, dword [ebp - 0x34]
lea ecx, [ebx + 0x2c]
test eax, eax
je 0x1006eee4
neg eax
push eax
call fcn.1005c62c
jmp 0x1006eee9
call fcn.1005c8dc
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x1006ef44
test dword [ebp - 0x50], 0xffffffbf
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x140], eax
je 0x1006ef18
mov dword [ebp - 0x148], 2
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0xc]
add eax, ecx
push eax
push ecx
push esi
mov eax, ebx
mov ecx, edx
neg eax
push esi
sbb eax, eax
and eax, dword [ebp - 0x40]
push 0x3fffffff
push eax
call fcn.10066d43
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1006ef69
cmp dword [ebp + 0xc], 0
jl 0x1006ef69
push esi
push 2
push dword [ebx + 0x44]
mov edx, eax
mov ecx, edi
push dword [ebx + 0x18]
push dword [ebx + 0x44]
push dword [ebx + 0x18]
call fcn.1006ada6
cmp dword [ebx + 0x44], esi
jne 0x1006ef80
cmp dword [ebp - 0xa8], 0
jne 0x1006ef96
push 0xffffffffffffffff
mov ecx, ebx
call fcn.1006f109
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x1006f04f
push esi
call fcn.100685b4
jmp 0x1006f04f
movsx eax, word [ebx + 0x4c]
mov ecx, dword [ebp - 0x14]
or dword [ebp + 0x18], 0x1000
push eax
call fcn.1005abf9
push 0x10
pop ecx
mov esi, eax
lea edi, [ebp - 0x110]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x14]
xor esi, esi
test byte [ebp - 0x110], 0x20
je 0x1006efd7
cmp dword [edi + 0x40], esi
je 0x1006efd7
test dword [edi + 0x4c], 0x10000
jne 0x1006efd7
and dword [ebp + 0x14], 0xffffffdf
cmp dword [ebp - 0xac], 0
je 0x1006eff3
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x110]
movsx eax, word [eax + 0x20]
push eax
call fcn.10070e60
push dword [ebp - 0x50]
lea ecx, [ebp - 0x110]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 8]
call fcn.10070649
test eax, eax
je 0x1006f015
mov esi, eax
jmp 0x1006ee66
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.100679d0
mov dword [ebp - 0x78], eax
test eax, eax
je 0x1006f037
mov ebx, dword [ebp - 0x78]
jmp 0x1006f0d8
mov ecx, dword [ebp - 0x38]
movsx eax, word [ebx + 0x4c]
push eax
lea ecx, [ecx + 4]
call fcn.10067748
mov ax, word [ebp - 0x54]
mov word [ebx + 0x4c], ax
test byte [ebx + 0x50], 0x40
je 0x1006f06a
test dword [edi + 0x4c], 0x80000
jne 0x1006f06a
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x1006f06a
call fcn.1006862d
test dword [ebp + 0x18], 0x2800
jne 0x1006f0aa
cmp dword [ebp - 0x3c], 0
je 0x1006f0aa
cmp dword [ebp - 0xc], 0
jne 0x1006f0aa
mov ecx, edi
call fcn.10058f80
test eax, eax
je 0x1006f0aa
mov eax, dword [ebx + 0xc]
cmp byte [eax + 0x3c], 0x7f
je 0x1006f0aa
neg ebx
lea ecx, [ebp - 0x188]
sbb ebx, ebx
and ebx, dword [ebp - 0x40]
push ebx
call fcn.100659b1
mov ebx, esi
jmp 0x1006f0d8
cmp dword [ebp - 0x90], 0
je 0x1006f0d0
mov edx, dword [ebp - 0x70]
test edx, edx
jns 0x1006f0c0
push esi
push dword [ebx + 0x18]
jmp 0x1006f0c9
mov ecx, dword [ebp - 0x74]
mov eax, ecx
sub eax, edx
push eax
push ecx
mov ecx, ebx
call fcn.1006d06a
xor ebx, ebx
cmp dword [ebp - 0xc], ebx
setne bl
mov ecx, dword [ebp - 0xcc]
call fcn.10061674
dec dword [0x100d5670]
push 0x100d4fb8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100c6890
mov esp, ebp
pop ebp
ret 0x18