Function at 0x108e998
Capabilities:
Get disk information
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x354
mov eax, dword [0x10e607c]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [edx]
push esi
xor esi, esi
sub ecx, esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x330], edx
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x328], edi
mov dword [ebp - 0x324], esi
mov dword [ebp - 0x30c], 0x889573d2
mov word [ebp - 0x308], 0x8d67
mov word [ebp - 0x306], 0x4e91
mov byte [ebp - 0x304], 0xbe
mov byte [ebp - 0x303], 0x9f
mov byte [ebp - 0x302], 0xf1
mov byte [ebp - 0x301], 0x74
mov byte [ebp - 0x300], 0x44
mov byte [ebp - 0x2ff], 0x7e
mov byte [ebp - 0x2fe], 0xe9
mov byte [ebp - 0x2fd], 0x4d
je 0x108f02d
dec ecx
je 0x108ef98
dec ecx
je 0x108ee78
dec ecx
je 0x108ed08
dec ecx
je 0x108ebd3
dec ecx
je 0x108eba5
dec ecx
jne 0x108f60e
cmp ebx, esi
mov dword [ebp - 0x320], esi
mov dword [ebp - 0x33c], esi
je 0x108f60e
mov eax, dword [ebx]
jmp 0x108ea92
cmp dword [eax + 0x214], esi
je 0x108ea82
inc dword [ebp - 0x320]
mov ecx, dword [eax + 0x210]
mov word [ecx + 0x32], si
mov eax, dword [eax + 0x218]
cmp eax, esi
jne 0x108ea74
mov eax, dword [ebx + 0x48]
cmp eax, esi
je 0x108eace
cmp dword [ebp - 0x320], esi
jle 0x108eace
mov ecx, dword [eax]
lea edx, [ebp - 0x31c]
push edx
lea edx, [ebp - 0x340]
push edx
push 0
push 2
sub esp, 0x10
mov edi, esp
lea esi, [ebx + 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x9c]
xor esi, esi
mov eax, dword [ebx + 0x48]
cmp eax, esi
je 0x108eadb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebx + 0x4c]
cmp eax, esi
je 0x108eae8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x320]
shl eax, 2
push 1
push eax
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x4c], esi
call dword [sym.imp.msvcrt.dll_calloc]
cmp eax, esi
pop ecx
pop ecx
mov dword [ebx + 0x44], eax
jne 0x108eb12
or ax, 0xffff
jmp 0x108f611
mov eax, dword [ebx]
xor edx, edx
jmp 0x108eb3a
mov ecx, dword [eax + 0x214]
cmp ecx, esi
je 0x108eb34
cmp edx, dword [ebp - 0x320]
jg 0x108eb34
mov edi, dword [ebx + 0x44]
add ecx, 4
mov dword [edi + edx*4], ecx
inc edx
mov eax, dword [eax + 0x218]
cmp eax, esi
jne 0x108eb18
cmp byte [ebx + 0x1c], 0
je 0x108eb4e
mov dword [ebp - 0x33c], 1
lea eax, [ebx + 0x4c]
push eax
push dword [ebx + 0x44]
lea esi, [ebp - 0x30c]
push dword [ebp - 0x320]
push dword [ebp - 0x33c]
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call sub.VSSAPI.DLL_Ordinal_3
test eax, eax
jge 0x108eb95
mov dword [ebx + 0x40], eax
xor eax, eax
cmp dword [ebp - 0x320], eax
jne 0x108ed50
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x20], eax
jmp 0x108f60e
and dword [ebx + 0x40], 0
mov dword [ebx + 0x20], 1
jmp 0x108f60e
cmp ebx, esi
je 0x108f60e
mov eax, dword [ebx + 0x4c]
cmp eax, esi
mov dword [ebx + 0x38], esi
je 0x108ebbd
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ebx, dword [ebx + 0x48]
cmp ebx, esi
je 0x108ebca
mov eax, dword [ebx]
push ebx
call dword [eax + 0x3c]
push 2
push esi
push esi
jmp 0x108ee26
cmp ebx, esi
je 0x108f60e
mov eax, dword [ebx + 0x38]
cmp eax, esi
jge 0x108f60e
cmp eax, 0x80042313
je 0x108ec18
cmp eax, 0x80042314
je 0x108ec18
cmp eax, 0x80042306
je 0x108ec18
cmp dword [ebx + 0x24], esi
je 0x108ec58
cmp byte [ebx + 0x1c], 0
je 0x108ec58
cmp dword [ebx + 0x2c], esi
je 0x108ecf0
cmp dword [ebx + 0x30], esi
jne 0x108ecf0
lea eax, [ebp - 0x324]
push eax
mov dword [ebp - 0x324], esi
call fcn.0108c4d5
test eax, eax
je 0x108ec4f
push esi
push 0x1d4d8
push dword [ebx + 0x38]
push dword [ebp - 0x324]
push esi
call fcn.0108dc61
push dword [ebp - 0x324]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ax, 0xfe3f
jmp 0x108f611
cmp dword [ebx + 0x28], esi
je 0x108ecf0
cmp dword [ebx + 0x2c], esi
je 0x108ecab
cmp dword [ebx + 0x30], esi
jne 0x108ecb0
lea eax, [ebp - 0x324]
push eax
mov dword [ebp - 0x324], esi
call fcn.0108c4d5
test eax, eax
je 0x108eca2
push esi
push 0x1d4d8
push dword [ebx + 0x38]
push dword [ebp - 0x324]
push esi
call fcn.0108dc61
push dword [ebp - 0x324]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ax, 0xfe42
jmp 0x108f611
cmp dword [ebx + 0x30], esi
je 0x108ecf0
lea eax, [ebp - 0x324]
push eax
mov dword [ebp - 0x324], esi
call fcn.0108c4d5
test eax, eax
je 0x108f60e
push esi
push 0x1d4cd
push dword [ebx + 0x38]
push dword [ebp - 0x324]
push esi
call fcn.0108dc61
push dword [ebp - 0x324]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x108f60e
push esi
push esi
push 0x23d
push eax
push esi
push esi
call fcn.0108db9e
mov ax, 0xfe40
jmp 0x108f611
cmp ebx, esi
je 0x108ed50
cmp dword [ebx + 0x20], esi
je 0x108ed59
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
lea edx, [ebp - 0x344]
push edx
lea edi, [ebx + 0x40]
push edi
push eax
call dword [ecx + 0x14]
cmp eax, esi
jge 0x108ed2e
mov dword [ebx + 0x38], eax
jmp 0x108ed3a
cmp dword [edi], 0x42309
je 0x108f60e
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebx + 0x38], esi
mov dword [ebx + 0x4c], esi
jl 0x108ed50
mov eax, dword [edi]
mov dword [ebx + 0x38], eax
mov ax, 1
jmp 0x108f611
cmp dword [ebx + 0x4c], esi
je 0x108ee67
lea eax, [ebp - 0x350]
push eax
call sub.MFC42u.dll_CTime::GetTickCount
cmp dword [ebx + 0x14], esi
mov eax, dword [eax]
je 0x108ed88
mov ecx, dword [0x10f4664]
cmp ecx, esi
je 0x108edb9
sub eax, ecx
cmp eax, 0x258
jmp 0x108ed9e
cmp dword [ebx + 0x18], esi
je 0x108edb9
mov ecx, dword [0x10f4660]
cmp ecx, esi
je 0x108edb9
sub eax, ecx
cmp eax, 0x12c
jle 0x108edb9
push 0x27d8
push 1
push 4
push esi
mov dword [ebx + 0x38], 0x80042319
call fcn.01053123
add esp, 0x10
lea edi, [ebx + 0x38]
cmp dword [edi], esi
jl 0x108edd7
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
lea edx, [ebp - 0x344]
push edx
push edi
push eax
call dword [ecx + 0x14]
cmp eax, esi
jge 0x108edd7
mov dword [edi], eax
mov eax, dword [edi]
cmp eax, 0x42309
je 0x108f60e
cmp dword [ebx + 0x14], esi
jne 0x108ee36
cmp eax, esi
jge 0x108edf2
cmp dword [ebx + 0x18], esi
je 0x108ee36
cmp dword [ebx + 0x18], esi
je 0x108f60e
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [edi], esi
mov dword [ebx + 0x4c], esi
jl 0x108ed50
push 1
push dword [ebp - 0x328]
push dword [ebp - 0x334]
push dword [ebp - 0x330]
call fcn.0108e998
jmp 0x108f60e
mov eax, dword [ebx + 0x4c]
cmp eax, esi
je 0x108ee4f
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx + 0x4c], esi
push dword [ebp - 0x330]
call fcn.0108df31
xor eax, eax
cmp dword [ebx + 0x20], esi
sete al
jmp 0x108f611
cmp dword [ebx + 0x14], esi
jne 0x108ee75
cmp dword [ebx + 0x38], esi
jge 0x108ed50
push edx
jmp 0x108ee55
xor eax, eax
cmp ebx, esi
mov dword [ebp - 0x31c], esi
lea edi, [ebp - 0x318]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x328], esi
stosd dword es:[edi], eax
je 0x108f60e
mov eax, dword [ebx + 0x48]
cmp eax, esi
je 0x108eecc
cmp dword [ebx + 0x14], esi
je 0x108eecc
mov ecx, dword [eax]
lea edx, [ebp - 0x31c]
push edx
lea edx, [ebp - 0x328]
push edx
push 1
push 2
sub esp, 0x10
mov edi, esp
lea esi, [ebx + 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x9c]
jmp 0x108eee9
cmp dword [ebx + 0x20], esi
je 0x108eeeb
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x30c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call sub.VSSAPI.DLL_Ordinal_4
and dword [ebx + 0x20], 0
xor esi, esi
cmp dword [ebx], esi
je 0x108ef4d
mov edi, dword [ebx]
lea esi, [edi + 0x210]
mov eax, dword [esi]
mov dword [ebp - 0x32c], edi
call fcn.0108db4c
mov eax, dword [esi]
and word [eax + 0x32], 0
mov eax, dword [esi]
and dword [eax + 0x3c], 0
lea eax, [edi + 0x200]
push 4
pop ecx
mov edi, 0x1013d8c
mov esi, eax
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x108ef32
mov esi, 0x1013d8c
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x32c]
mov ecx, dword [eax + 0x218]
push eax
mov dword [ebx], ecx
call dword [sym.imp.msvcrt.dll_free]
cmp dword [ebx], 0
pop ecx
jne 0x108eeef
mov eax, dword [ebx + 0x48]
xor edi, edi
cmp eax, edi
je 0x108ef5f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx + 0x48], edi
mov eax, dword [ebx + 0x4c]
cmp eax, edi
je 0x108ef6f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx + 0x4c], edi
push dword [ebx + 8]
mov esi, dword [sym.imp.msvcrt.dll_free]
call esi
push dword [ebx + 0x44]
mov dword [ebx + 8], edi
call esi
push ebx
mov dword [ebx + 0x44], edi
call esi
mov eax, dword [ebp - 0x330]
add esp, 0xc
mov dword [eax], edi
jmp 0x108f60e
cmp ebx, esi
je 0x108f60e
mov eax, dword [ebx + 0x48]
cmp eax, esi
je 0x108f60e
cmp dword [ebx + 0x18], esi
jne 0x108eff1
mov ecx, dword [eax]
xor edx, edx
mov dl, byte [ebx + 0x1c]
push esi
push 1
push edx
push esi
push eax
call dword [ecx + 0x18]
mov edi, eax
cmp edi, esi
jl 0x108f025
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax]
lea edx, [ebx + 0x4c]
push edx
push eax
call dword [ecx + 0x38]
mov edi, eax
lea eax, [ebp - 0x348]
push eax
mov dword [ebx + 0x18], 1
call sub.MFC42u.dll_CTime::GetTickCount
mov eax, dword [eax]
mov dword [0x10f4660], eax
jmp 0x108f01d
lea eax, [ebp - 0x34c]
push eax
mov dword [ebx + 0x14], 1
call sub.MFC42u.dll_CTime::GetTickCount
mov eax, dword [eax]
lea edx, [ebx + 0x4c]
mov dword [0x10f4664], eax
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x98]
mov edi, eax
cmp edi, esi
jge 0x108f60e
mov dword [ebx + 0x38], edi
jmp 0x108f60e
cmp eax, esi
mov dword [ebp - 0x33c], esi
je 0x108f60e
mov cl, byte [eax + 0x30]
cmp cl, 6
jne 0x108f08e
mov dword [ebp - 0x324], eax
push 0x104
lea eax, [ebp - 0x2fc]
push eax
push 0x1011180
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea eax, [ebp - 0x334]
push eax
push 1
lea eax, [ebp - 0x2fc]
push eax
mov eax, dword [ebp - 0x334]
push dword [eax + 0x14]
call fcn.01087561
mov eax, dword [ebp - 0x334]
cmp eax, esi
je 0x108f60e
jmp 0x108f0a8
cmp edi, esi
je 0x108f09f
test byte [edi + 0x9f], 4
je 0x108f60e
cmp cl, 1
jne 0x108f60e
cmp word [0x10f5df8], si
je 0x108f60e
cmp word [0x10f5dfc], si
je 0x108f60e
test byte [eax + 0x60], 0x84
jne 0x108f60e
mov ecx, dword [eax + 0x34]
cmp word [ecx + 2], 0x3a
jne 0x108f60e
mov esi, eax
call fcn.0108db10
test ebx, ebx
jne 0x108f240
push 1
push 0x60
call dword [sym.imp.msvcrt.dll_calloc]
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
je 0x108eb09
cmp dword [ebp - 0x324], 0
mov eax, dword [ebp - 0x330]
mov dword [eax], ebx
je 0x108f114
mov byte [ebx + 0x1c], 1
lea esi, [ebx + 0x48]
push esi
mov dword [ebp - 0x338], esi
call sub.VSSAPI.DLL_long_int___stdcall_CreateVssBackupComponents_class_IVssBackupComponents___
mov edi, eax
test edi, edi
jl 0x108f282
mov eax, dword [esi]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x14]
mov eax, dword [esi]
mov ecx, dword [eax]
push 1
push 0x10e6258
push eax
call dword [ecx + 0xb4]
mov eax, dword [esi]
mov ecx, dword [eax]
push 1
push 0x10e6208
push eax
call dword [ecx + 0xb4]
mov edi, eax
test edi, edi
jl 0x108f282
mov eax, dword [esi]
test eax, eax
je 0x108f23c
and dword [ebp - 0x32c], 0
mov ecx, dword [eax]
lea edx, [ebp - 0x32c]
push edx
push eax
call dword [ecx + 0x24]
mov edi, eax
test edi, edi
jl 0x108f282
and dword [ebp - 0x328], 0
mov dword [ebp - 0x320], 0x12c
mov eax, dword [ebp - 0x32c]
mov ecx, dword [eax]
lea edx, [ebp - 0x354]
push edx
lea edx, [ebp - 0x340]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
jl 0x108f1de
cmp dword [ebp - 0x340], 0x4230a
je 0x108f1ef
push 0x3e8
call fcn.010a9bf1
dec dword [ebp - 0x320]
jne 0x108f19e
jmp 0x108f1f9
mov eax, dword [ebp - 0x32c]
mov dword [ebx + 0x38], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
jmp 0x108f1f9
mov dword [ebp - 0x328], 1
mov eax, dword [ebp - 0x32c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x320], 0
jne 0x108f224
push 0x27d8
push 1
push 4
push 0
or edi, 0xffffffff
call fcn.01053123
add esp, 0x10
cmp word [ebp - 0x328], 0
je 0x108f23c
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [ebx + 0x34]
push edx
push eax
call dword [ecx + 0x28]
mov edi, eax
test edi, edi
jl 0x108f282
lea esi, [ebx + 0x48]
mov eax, dword [esi]
test eax, eax
mov dword [ebp - 0x338], esi
je 0x108f294
cmp dword [ebx + 0x10], 0
jne 0x108f294
mov ecx, dword [eax]
lea edx, [ebx + 0x50]
push edx
push eax
call dword [ecx + 0x90]
mov edi, eax
cmp edi, 0x80042301
jne 0x108f275
mov ax, 0xfe41
jmp 0x108f611
test edi, edi
jl 0x108f282
mov dword [ebx + 0x10], 1
jmp 0x108f294
mov eax, dword [esi]
test eax, eax
mov dword [ebx + 0x38], edi
je 0x108f291
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [esi], 0
mov esi, dword [ebp - 0x334]
mov eax, dword [esi + 0x5c]
mov eax, dword [eax + 0x54]
test eax, eax
mov dword [ebp - 0x320], eax
jne 0x108f2c1
call fcn.0108db10
mov eax, dword [ebp - 0x334]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x54]
mov dword [ebp - 0x320], eax
cmp dword [ebp - 0x324], 0
je 0x108f2ce
mov byte [ebx + 0x1c], 1
test eax, eax
je 0x108f5bb
mov ecx, dword [ebp - 0x320]
add ecx, 4
je 0x108f359
mov eax, dword [ebp - 0x338]
mov eax, dword [eax]
test eax, eax
je 0x108f359
cmp dword [ebx], 0
jne 0x108f359
and dword [ebp - 0x328], 0
mov edx, dword [eax]
lea esi, [ebp - 0x328]
push esi
push ecx
sub esp, 0x10
mov edi, esp
mov esi, 0x1013d8c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0xb0]
cmp byte [ebx + 0x1c], 1
mov edi, eax
je 0x108f359
test edi, edi
jl 0x108f32d
cmp dword [ebp - 0x328], 0
jne 0x108f359
mov eax, dword [ebp - 0x334]
call fcn.0108db4c
mov esi, dword [ebp - 0x338]
mov eax, dword [esi]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x330]
and dword [esi], 0
mov dword [ebx + 0x38], edi
mov dword [eax], ebx
jmp 0x108f60e
mov esi, dword [ebp - 0x320]
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
je 0x108f5a7
cmp eax, 2
je 0x108f5a7
mov esi, dword [ebx]
test esi, esi
je 0x108f424
mov eax, dword [esi + 0x214]
test eax, eax
je 0x108f40c
add eax, 4
push eax
mov eax, dword [ebp - 0x320]
add eax, 4
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
test eax, eax
pop ecx
pop ecx
je 0x108f41a
push 0x1e
pop ecx
xor eax, eax
push 0x1e
lea edi, [ebp - 0xf4]
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x7c]
rep stosd dword es:[edi], eax
push 0x3c
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [ebp - 0x320]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x108f40c
push 0x3c
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [esi + 0x214]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x108f40c
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0xf4]
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
test eax, eax
pop ecx
pop ecx
je 0x108f41a
mov esi, dword [esi + 0x218]
test esi, esi
jne 0x108f385
test esi, esi
je 0x108f424
mov dword [ebp - 0x33c], esi
push 1
push 0x220
call dword [sym.imp.msvcrt.dll_calloc]
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x32c], eax
je 0x108eb09
cmp dword [ebp - 0x33c], 0
jne 0x108f547
mov eax, dword [ebp - 0x338]
cmp dword [eax], 0
je 0x108f56c
and dword [ebp - 0x330], 0
and dword [ebp - 0x328], 0
mov esi, 0x1013d8c
lea edi, [ebp - 0x31c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x328]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0108d7fa
test eax, eax
je 0x108f4a2
cmp dword [ebp - 0x328], 0
je 0x108f4a2
mov esi, 0x10e6248
lea edi, [ebp - 0x31c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x338]
mov eax, dword [eax]
mov edx, dword [eax]
lea ecx, [ebp - 0x330]
push ecx
mov ecx, dword [ebp - 0x320]
add ecx, 4
push ecx
sub esp, 0x10
mov edi, esp
mov esi, 0x1013d8c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0xb0]
cmp byte [ebx + 0x1c], 1
je 0x108f4e5
test eax, eax
jl 0x108f534
cmp dword [ebp - 0x330], 0
je 0x108f534
mov ecx, dword [ebp - 0x32c]
mov eax, dword [ebp - 0x338]
mov eax, dword [eax]
mov edx, dword [eax]
add ecx, 0x200
push ecx
mov ecx, dword [ebp - 0x320]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x31c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add ecx, 4
movsd dword es:[edi], dword [esi]
push ecx
push eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0x94]
test eax, eax
jge 0x108f56c
cmp eax, 0x80042308
jne 0x108f542
push dword [ebp - 0x32c]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [ebp - 0x320]
mov eax, dword [eax + 0x404]
jmp 0x108f5ad
mov dword [ebx + 0x38], eax
jmp 0x108f56c
mov eax, dword [ebp - 0x32c]
mov esi, dword [ebp - 0x33c]
add esi, 0x200
lea edi, [eax + 0x200]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov word [eax + 0x21c], 1
mov ecx, dword [ebp - 0x334]
mov eax, dword [ebp - 0x32c]
mov dword [eax + 0x210], ecx
mov ecx, dword [ebp - 0x320]
mov dword [eax + 0x214], ecx
cmp dword [ebx], 0
jne 0x108f593
mov dword [ebx], eax
jmp 0x108f59c
mov edx, dword [ebx + 4]
mov dword [edx + 0x218], eax
mov dword [ebx + 4], eax
mov eax, dword [ecx + 0x404]
jmp 0x108f5ad
mov eax, dword [esi + 0x404]
test eax, eax
mov dword [ebp - 0x320], eax
jne 0x108f359
xor edi, edi
cmp dword [ebx + 4], edi
je 0x108f5f5
mov esi, dword [ebp - 0x324]
cmp esi, edi
je 0x108f5f5
push 1
push 0x220
call dword [sym.imp.msvcrt.dll_calloc]
cmp eax, edi
pop ecx
pop ecx
je 0x108eb09
mov dword [eax + 0x210], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x218], eax
mov dword [ebx + 4], eax
cmp dword [ebx + 0x38], edi
jge 0x108f60e
mov esi, dword [ebp - 0x338]
mov eax, dword [esi]
cmp eax, edi
je 0x108f60c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esi], edi
xor ax, ax
mov ecx, dword [ebp - 4]
call fcn.01078836
pop edi
pop esi
pop ebx
leave
ret 0x10