Function at 0x1011bac
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [reloc.msvcrt.dll___p__commode]
xor eax, dword [ebp + 4]
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ecx, ecx
push edi
mov dword [ebp - 4], eax
mov eax, dword [esi + 8]
push esi
push dword [eax + 4]
lea edi, [eax + 0x60]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], ecx
call fcn.0101baf5
mov ebx, eax
cmp ebx, reloc.msvcrt.dll___p__commode
mov dword [ebp - 8], ebx
jne 0x1011863
push esi
push 0
push 7
push dword [ebp + 8]
call fcn.01009bd0
jmp 0x1012123
test ebx, ebx
jne 0x101187b
push esi
call fcn.0101bb2f
mov ebx, eax
test ebx, ebx
mov dword [ebp - 8], ebx
jne 0x10118a4
jmp 0x1012123
cmp dword [ebx + 0x34], 0
jne 0x10118a4
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
mov dword [ebp - 0x10], 1
jne 0x10118a4
mov eax, dword [esi + 8]
push dword [eax + 4]
mov dword [ebp - 0x2c], 1
push ebx
call fcn.0101ab36
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
cmp dword [eax + 4], 0
jne 0x10118c4
push 1
push ebx
push esi
call fcn.01006948
test eax, eax
je 0x10118c4
mov dword [ebp + 0xc], 1
mov eax, dword [ebx + 4]
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
and eax, 0xf0000000
cmp eax, 0xe0000000
jne 0x10118e3
push 0
push dword [ebp + 8]
jmp 0x10118eb
mov eax, dword [esi + 8]
push dword [eax + 0xc]
push 0xffffffffffffffff
push dword [edi]
push dword [ebp - 8]
call fcn.01010987
mov ebx, eax
test ebx, ebx
jne 0x1011ae5
push dword [esi + 0x3c]
mov eax, dword [esi + 8]
push dword [edi]
push dword [eax + 0xc]
push dword [ebp - 8]
call fcn.01010aa0
mov ebx, eax
test ebx, ebx
je 0x1012123
mov eax, dword [esi + 8]
push dword [eax + 0x50]
push dword [eax + 0x2c]
push dword [edi + 8]
push dword [edi + 4]
push dword [edi]
push ebx
call fcn.01010b09
test eax, eax
je 0x1011940
push ebx
push dword [ebp - 8]
jmp 0x101211e
mov eax, dword [esi + 0x20]
test eax, eax
mov dword [ebp - 0x28], 1
je 0x101195a
mov eax, dword [eax + 0x8c]
mov dword [ebx + 0xa8], eax
lea eax, [ebx + 0xc]
push eax
mov eax, dword [esi + 8]
push dword [eax + 0xc]
call fcn.0101addb
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x54]
mov edi, dword [ebp - 8]
mov dword [ebx + 0x9c], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x58]
push ebx
push edi
mov dword [ebx + 0xa0], eax
call fcn.010149eb
test eax, eax
je 0x1011993
or dword [ebx + 0x64], 0x40
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x10119a7
lea ecx, [ebx + 0x18]
push ecx
push eax
call fcn.0101addb
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x10119bb
lea ecx, [ebx + 0x24]
push ecx
push eax
call fcn.0101addb
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x10119cf
lea ecx, [ebx + 0x30]
push ecx
push eax
call fcn.0101addb
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x10119e3
lea ecx, [ebx + 0x38]
push ecx
push eax
call fcn.0101addb
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 4], 0
je 0x1011a00
mov eax, dword [eax + 0x48]
test eax, eax
je 0x1011a00
lea ecx, [ebx + 0x40]
push ecx
push eax
call fcn.0101addb
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
cmp dword [eax + 4], 0
jne 0x1011a6a
mov eax, dword [reloc.msvcrt.dll___p__commode]
mov dword [ebx + 0x5c], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 8]
mov byte [ebx + 0x5a], al
mov eax, dword [esi + 0x14]
mov dword [ebx + 0xa4], eax
mov ecx, dword [esi + 0xc]
mov eax, 0x100
test eax, ecx
jne 0x1011a3e
mov eax, 0x400
test eax, ecx
je 0x1011a41
or dword [ebx + 0x64], eax
mov eax, 0x200
test dword [esi + 0xc], eax
je 0x1011a4e
or dword [ebx + 0x64], eax
mov eax, 0x1000
test dword [esi + 0xc], eax
je 0x1011a5b
or dword [ebx + 0x64], eax
mov eax, 0x800
test dword [esi + 0xc], eax
je 0x1011aad
or dword [ebx + 0x64], eax
jmp 0x1011aad
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov dword [ebx + 0x5c], edi
mov eax, dword [eax + 4]
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
and eax, 0xf0000000
cmp eax, 0xe0000000
jne 0x1011a99
push edi
call fcn.0100bc1d
test eax, eax
jne 0x1011a99
or dword [ebx + 0x64], 8
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 8]
add eax, 0x44
cmp dword [eax], eax
je 0x1011aad
mov dword [ebp - 0x10], 1
lea eax, [edi + 0x18]
push eax
lea eax, [edi + 0xc]
push eax
call fcn.01019092
test eax, eax
jne 0x1011acd
push dword [edi + 0x10]
lea eax, [edi + 0x4c]
push 1
push edi
push eax
call fcn.01019172
push edi
call fcn.0101b122
or dword [ebx + 0x64], 0x20
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x14], eax
jmp 0x1011e85
push dword [ebx + 4]
mov eax, dword [edi]
push eax
call fcn.0101a8ab
test eax, eax
jne 0x1011afd
push esi
push eax
push 8
jmp 0x1011856
mov eax, dword [esi + 0x3c]
cmp dword [ebx + 0x54], eax
je 0x1011b13
or dword [ebx + 0x64], 0x20
mov dword [ebx + 0x54], eax
mov dword [ebp + 0xc], 1
mov edx, dword [esi + 8]
mov ecx, dword [edx + 0x54]
lea eax, [ebx + 0x9c]
cmp dword [eax], ecx
mov dword [ebp - 0x18], ecx
jne 0x1011b34
mov ecx, dword [ebx + 0xa0]
cmp ecx, dword [edx + 0x58]
je 0x1011b4d
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x58]
or dword [ebx + 0x64], 0x20
mov dword [ebx + 0xa0], eax
mov dword [ebp + 0xc], 1
push dword [ebx + 8]
push dword [edi + 4]
call fcn.01018a36
test eax, eax
je 0x1011bbe
cmp eax, 3
jne 0x1011b6b
push esi
push 1
push 0x15
jmp 0x1011856
push dword [edi + 4]
call fcn.0101ae0b
test eax, eax
mov dword [ebp + 0xc], eax
jne 0x1011b89
push 0x28
push dword [ebp + 8]
call fcn.01005941
jmp 0x1012123
push dword [ebx + 8]
push 0
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp + 0xc]
or dword [ebx + 0x64], 0x20
mov dword [ebx + 8], eax
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
add eax, 0x44
cmp dword [eax], eax
je 0x1011bbe
mov dword [ebp - 0x10], 1
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x1011c19
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
cmp dword [eax + 4], ecx
jne 0x1011bd8
mov eax, dword [eax + 8]
cmp eax, dword [ebx + 0x14]
je 0x1011c19
push ebx
push dword [ebp - 8]
call fcn.01010c4b
lea eax, [ebx + 0xc]
push eax
mov eax, dword [esi + 8]
push dword [eax + 0xc]
call fcn.0101addb
push dword [ebx + 4]
lea eax, [ebx + 0xc]
push eax
push ebx
push dword [ebp - 8]
call fcn.010109d4
mov eax, dword [ebp - 8]
add eax, 0x44
cmp dword [eax], eax
je 0x1011c15
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x30], eax
jmp 0x1011c19
or dword [ebx + 0x64], 0x40
test byte [esi + 0xd], 0x20
je 0x1011c2a
or dword [ebx + 0x64], 0x20
mov dword [ebp + 0xc], 1
push dword [ebx + 0x50]
push dword [edi + 8]
call fcn.01017b2c
test eax, eax
je 0x1011ca1
or dword [ebx + 0x64], 0x20
mov edi, dword [edi + 8]
test edi, edi
mov dword [ebp + 0xc], 1
je 0x1011c87
push edi
call fcn.0101ae0b
mov edi, eax
test edi, edi
je 0x1011b7a
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x1011c71
push eax
push 0
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 8]
add eax, 0x44
mov dword [ebx + 0x50], edi
cmp dword [eax], eax
je 0x1011ca1
mov dword [ebp - 0x10], 1
jmp 0x1011ca1
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x1011ca1
push eax
push 0
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapFree]
and dword [ebx + 0x50], 0
cmp dword [ebx + 0x10], 0
je 0x1011d97
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x1011cc5
lea ecx, [ebx + 0x18]
push ecx
push eax
call fcn.0101ae4b
test eax, eax
je 0x1011cda
jmp 0x1011cd3
cmp byte [ebx + 0x1b], 0
je 0x1011cda
xor eax, eax
lea edi, [ebx + 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp + 0xc], 1
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x1011cf4
lea ecx, [ebx + 0x24]
push ecx
push eax
call fcn.0101ae4b
test eax, eax
je 0x1011d09
jmp 0x1011d02
cmp byte [ebx + 0x27], 0
je 0x1011d09
xor eax, eax
lea edi, [ebx + 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp + 0xc], 1
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x1011d23
lea ecx, [ebx + 0x30]
push ecx
push eax
call fcn.0101ae90
test eax, eax
je 0x1011d37
jmp 0x1011d30
cmp byte [ebx + 0x33], 0
je 0x1011d37
xor eax, eax
lea edi, [ebx + 0x30]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp + 0xc], 1
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x1011d51
lea ecx, [ebx + 0x38]
push ecx
push eax
call fcn.0101ae90
test eax, eax
je 0x1011d65
jmp 0x1011d5e
cmp byte [ebx + 0x3b], 0
je 0x1011d65
xor eax, eax
lea edi, [ebx + 0x38]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp + 0xc], 1
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x1011d83
mov al, byte [eax + 7]
mov cl, byte [ebx + 0x47]
and al, 7
and cl, 7
cmp al, cl
je 0x1011d97
mov byte [ebx + 0x47], al
jmp 0x1011d90
cmp byte [ebx + 0x43], 0
je 0x1011d97
xor eax, eax
lea edi, [ebx + 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp + 0xc], 1
mov eax, dword [esi + 8]
cmp dword [eax + 0x2c], 0
lea edi, [ebx + 0x74]
je 0x1011ded
push dword [edi]
call fcn.0101b59d
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 8]
push dword [eax + 0x2c]
call fcn.0101b59d
cmp dword [ebp - 0x18], eax
jne 0x1011dce
mov eax, dword [esi + 8]
push dword [eax + 0x2c]
push dword [edi]
call fcn.0101b577
test eax, eax
jne 0x1011e02
mov eax, dword [esi + 8]
push dword [eax + 0x2c]
call fcn.0101b2f3
test eax, eax
mov dword [ebp - 0x18], eax
je 0x1011e02
push edi
call fcn.0101b1fb
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
jmp 0x1011dfb
cmp dword [edi], 0
je 0x1011e02
push edi
call fcn.0101b1fb
and dword [edi], 0
mov dword [ebp + 0xc], 1
mov edx, dword [esi + 0xc]
mov eax, 0x200
and edx, eax
je 0x1011e19
mov ecx, dword [ebx + 0x64]
test eax, ecx
jne 0x1011e19
or ecx, eax
jmp 0x1011e2a
test edx, edx
jne 0x1011e35
mov ecx, dword [ebx + 0x64]
test eax, ecx
je 0x1011e35
and ecx, 0xfffffdff
xor edi, edi
inc edi
mov dword [ebx + 0x64], ecx
mov dword [ebp + 0xc], edi
jmp 0x1011e38
xor edi, edi
inc edi
mov edx, dword [esi + 0xc]
mov eax, 0x400
and edx, eax
je 0x1011e55
mov ecx, dword [ebx + 0x64]
test eax, ecx
jne 0x1011e55
or ecx, eax
mov dword [ebx + 0x64], ecx
mov dword [ebp + 0xc], edi
jmp 0x1011e81
test edx, edx
jne 0x1011e7b
mov ecx, dword [ebx + 0x64]
test eax, ecx
je 0x1011e7b
and ecx, 0xfffffbff
mov eax, 0x100
mov dword [ebx + 0x64], ecx
test dword [esi + 0xc], eax
je 0x1011e78
or ecx, eax
mov dword [ebx + 0x64], ecx
mov dword [ebp + 0xc], edi
cmp dword [ebp + 0xc], 0
je 0x1011e85
or dword [ebx + 0x64], 0x20
mov eax, dword [esi + 8]
push dword [eax + 0x10]
call fcn.0101903c
mov ecx, dword [ebx + 0x6c]
sub ecx, eax
jns 0x1011e9a
mov dword [ebx + 0x6c], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
test byte [eax + 9], 1
je 0x1011eaa
or dword [ebx + 0x64], 4
cmp dword [ebx + 0x10], 0
mov al, byte [esi + 0x26]
mov byte [ebx + 0x58], al
je 0x1011ec5
push dword [ebp + 8]
call fcn.0100bc1d
test eax, eax
je 0x1011ec5
inc byte [ebx + 0x58]
push ebx
push esi
push dword [ebp - 8]
call fcn.01011671
lea edi, [ebx + 0x70]
push edi
call fcn.0101b1fb
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x1011eee
push eax
call fcn.0101b2f3
test eax, eax
je 0x1011eee
mov dword [edi], eax
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x50]
test ecx, ecx
je 0x1011fe0
lea eax, [ecx + 8]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + eax - 4]
cmp eax, ecx
mov dword [ebp - 0x34], ecx
jae 0x1011fe0
mov ecx, dword [eax + 4]
test ecx, ecx
mov edx, eax
mov dword [ebp - 0xc], edx
je 0x1012123
add eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [edx]
sub eax, 0x7d2
je 0x1011f89
dec eax
je 0x1011f7a
sub eax, 0x3e7
je 0x1011f72
dec eax
je 0x1011f4b
dec eax
jne 0x1012123
lea edi, [ebx + 0x88]
jmp 0x1011f51
lea edi, [ebx + 0x94]
cmp dword [edi], 0
jne 0x1011f68
push 0xc
push 0
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [edi], eax
mov edi, dword [edi]
mov esi, dword [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x1011fd0
lea edi, [ebx + 0x90]
jmp 0x1011f51
mov dword [ebp - 0x24], 1
lea esi, [ebx + 0x98]
jmp 0x1011f96
mov dword [ebp - 0x20], 1
lea esi, [ebx + 0x8c]
mov eax, dword [esi]
test eax, eax
jne 0x1011faf
push 0xc
push eax
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esi], eax
jmp 0x1011fbd
mov edi, dword [ebp - 0xc]
push 3
mov esi, eax
pop ecx
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x1011fd0
mov esi, dword [ebp - 0xc]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
or dword [ebx + 0x64], 0x20
mov dword [ebp + 0xc], 1
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x18], eax
jae 0x1011fe0
mov eax, dword [ebp - 0x18]
jmp 0x1011f11
lea esi, [ebx + 0x8c]
mov eax, dword [esi]
test eax, eax
je 0x101200f
cmp dword [ebp - 0x20], 0
jne 0x101200f
push eax
push 0
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapFree]
and dword [esi], 0
or dword [ebx + 0x64], 0x20
mov dword [ebp + 0xc], 1
lea esi, [ebx + 0x98]
mov eax, dword [esi]
test eax, eax
je 0x101203e
cmp dword [ebp - 0x24], 0
jne 0x101203e
push eax
push 0
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapFree]
and dword [esi], 0
or dword [ebx + 0x64], 0x20
mov dword [ebp + 0xc], 1
cmp dword [ebx + 0x10], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
je 0x1012071
push eax
call fcn.0100bc1d
test eax, eax
je 0x1012071
mov edi, dword [ebp - 8]
mov eax, dword [edi + 4]
add eax, 4
push eax
xor esi, esi
call fcn.0100be99
test eax, eax
jge 0x1012090
mov ecx, dword [ebp + 8]
inc esi
shl esi, cl
jmp 0x1012090
mov edi, dword [ebp - 8]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
push edi
call fcn.0101055f
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
je 0x1012106
mov esi, dword [ebp - 0x34]
push esi
push dword [ebp - 0x24]
push ebx
push edi
call fcn.01011112
push ebx
push edi
call fcn.010117a7
xor esi, esi
cmp dword [ebp - 0x10], esi
je 0x10121c4
lea eax, [edi + 0x44]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp - 0x18], ecx
je 0x10121c4
mov eax, dword [ebp - 0x18]
add eax, 0xffffff4c
lea ecx, [ebp - 8]
mov dword [ebp - 0x34], esi
mov dword [ebp - 8], eax
mov eax, dword [eax + 0xa0]
push ecx
push eax
push dword [0x1024f90]
mov dword [ebp - 0xc], esi
call fcn.0100450c
test al, al
je 0x10121b1
mov eax, dword [ebp - 8]
cmp dword [eax + 0x4c], esi
je 0x10121b1
cmp dword [ebp - 0x2c], esi
je 0x101212b
push eax
push edi
call fcn.01010521
jmp 0x101215d
lea eax, [ebp - 0x44]
push eax
mov eax, dword [edi + 4]
push dword [eax + 4]
call fcn.0101b6d0
xor esi, esi
cmp dword [ebp - 0x28], esi
je 0x10120a4
push ebx
push edi
call fcn.0101141a
or eax, reloc.msvcrt.dll___p__commode
jmp 0x1012229
mov eax, dword [edi + 4]
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
and eax, 0xf0000000
cmp eax, 0xe0000000
jne 0x1012164
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 8]
cmp ecx, dword [reloc.msvcrt.dll___p__commode]
jbe 0x1012164
mov ecx, dword [ebp + 8]
mov dword [eax + 8], ecx
mov dword [ebp - 0xc], 1
cmp dword [edi + 0x38], esi
je 0x1012176
push dword [ebp - 8]
push edi
call fcn.0101aaa6
test eax, eax
je 0x101217d
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], esi
jne 0x1012198
cmp dword [ebp - 0x14], esi
je 0x10121b1
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
call fcn.01010470
cmp dword [ebp - 0xc], esi
je 0x10121b1
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 8]
push 0xd
push dword [0x1041760]
add eax, 0x4c
push esi
push eax
call fcn.010102f0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
lea ecx, [edi + 0x44]
cmp eax, ecx
mov dword [ebp - 0x18], eax
jne 0x10120bd
cmp dword [ebp + 0xc], esi
je 0x10121e8
cmp dword [ebx + 0x10], esi
jne 0x10121dd
push edi
call fcn.01014037
test eax, eax
je 0x10121e8
cmp dword [edi + 0x38], esi
je 0x10121e8
push ebx
push esi
push edi
call fcn.01007a57
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x30], esi
jne 0x10121f7
cmp dword [ebp - 0x10], esi
jne 0x1012227
cmp dword [ebp - 0x1c], esi
je 0x1012227
mov ecx, dword [ebx + 0x5c]
xor eax, eax
inc eax
shl eax, cl
or dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + 0x7c]
cmp eax, esi
je 0x1012220
push eax
push esi
push dword [0x1024f78]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebx + 0x78]
mov dword [eax + 0x7c], esi
push esi
push edi
call fcn.01015b39
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 4]
pop edi
pop esi
pop ebx
call fcn.0101ed84
leave
ret 8