Function at 0x10007c25
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x1b4
mov eax, dword [0x10013064]
xor eax, esp
mov dword [esp + 0x1b0], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
mov dword [esp + 0x40], ecx
push edi
cmp dword [ebx + 0x10], 3
mov ecx, dword [ebx + 8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], esi
jne 0x10007777
mov edi, dword [ebx + 0xc]
xor edx, edx
mov dword [esp + 0x3c], edx
mov esi, edx
mov byte [esp + 0x2f], dl
mov dword [esp + 0x48], edx
test ecx, ecx
je 0x10007780
mov ecx, eax
mov dword [esp + 0x40], ecx
lea ecx, [ecx]
cmp dword [edi], 5
jne 0x10007480
test eax, eax
je 0x100071df
mov dx, word [edi + 4]
lea eax, [edi + 0x2c]
push eax
call fcn.1000ffe0
add esp, 4
test al, al
je 0x100071cf
movzx edx, word [edi + 4]
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x40]
movzx ebx, word [eax]
mov ecx, ebx
movsx eax, dx
cmp ecx, eax
je 0x1000715c
cmp ebx, 8
jne 0x10007127
mov eax, 0x2011
cmp dx, ax
jne 0x10007127
push dword [esp + 0x40]
mov eax, dword [0x10013404]
lea ebx, [edi + 0x28]
push ebx
lea ecx, [esp + 0x108]
push ecx
mov esi, dword [eax]
push 0x80
push 0xc
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x10014154]
call esi
mov esi, eax
xor ecx, ecx
test esi, esi
mov dword [esp + 0x20], esi
setns cl
dec ecx
test esi, ecx
jne 0x10007568
mov ecx, dword [ebx]
jmp 0x100073e8
mov eax, dword [esp + 0x38]
push edx
push 0
push eax
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
jne 0x10007577
lea eax, [esp + 0xa8]
jmp 0x10007160
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 8]
lea ebx, [edi + 0x28]
movzx edx, word [edi + 6]
mov dword [esp + 0x28], eax
mov eax, 0x81
cmp dx, ax
jne 0x100071a9
push 0
push 0
push 0
push 0
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push eax
mov eax, dword [esp + 0x3c]
push dword [eax + 8]
push 0x400
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebx], eax
mov ecx, eax
mov byte [edi + 0x1e], 1
jmp 0x100073e8
mov eax, 0x82
cmp dx, ax
jne 0x100071c7
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov ecx, eax
mov byte [edi + 0x1e], 2
add ecx, ecx
jmp 0x100073e6
mov ecx, dword [ecx + 0x10]
jmp 0x100073e6
lea ebx, [edi + 0x28]
xor ecx, ecx
mov dword [ebx], 0
jmp 0x100073e8
cmp dword [edi + 0x20], 0
lea ebx, [edi + 0x20]
jne 0x10007322
mov eax, dword [edi + 0x18]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xcc], eax
add ebx, 0x40
mov al, byte [edi + 0x1c]
mov byte [esp + 0xfe], al
mov al, byte [edi + 0x1d]
cmp dword [ebx], 0
mov byte [esp + 0xff], al
mov ax, word [edi + 6]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe8], 6
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov word [esp + 0xfc], ax
mov dword [esp + 0xf8], 0
jne 0x100072d9
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x10007348
mov ecx, dword [ecx + 0x30]
test ecx, ecx
je 0x10007348
mov eax, dword [ecx]
push ebx
push 0x100038b4
push ecx
mov esi, dword [eax]
mov ecx, esi
call dword [0x10014154]
call esi
test eax, eax
js 0x10007348
mov eax, dword [ebx + 4]
cmp byte [eax + 0x34], 0
je 0x100072d9
push eax
call fcn.10004fe0
mov eax, dword [ebx]
cmp eax, 0xffffffff
jne 0x100072e2
xor eax, eax
mov esi, dword [eax]
lea ecx, [esp + 0x104]
push ecx
lea ebx, [edi + 0x20]
push ebx
mov esi, dword [esi + 0x10]
lea ecx, [esp + 0xd4]
push 0
push ecx
push 1
push 2
push eax
mov ecx, esi
call dword [0x10014154]
call esi
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
jne 0x10007586
mov eax, dword [esp + 0x4c]
sub eax, 0
je 0x10007363
sub eax, 2
je 0x10007350
sub eax, 1
jne 0x1000738f
mov ecx, dword [esp + 0x44]
lea ecx, [ecx + 0x60]
call fcn.10005bd0
mov esi, dword [eax]
mov esi, dword [esi + 0xc]
jmp 0x10007374
mov dword [ebx], 0xffffffff
jmp 0x100072e0
mov ecx, dword [esp + 0x44]
lea ecx, [ecx + 0x58]
call fcn.10005b50
mov esi, dword [eax]
mov esi, dword [esi + 0x18]
jmp 0x10007374
mov ecx, dword [esp + 0x44]
lea ecx, [ecx + 0x38]
call fcn.100059d0
mov esi, dword [eax]
mov esi, dword [esi + 0x10]
lea ecx, [esp + 0x50]
push ecx
push dword [ebx]
mov ecx, esi
push dword [ebp + 0xc]
push eax
call dword [0x10014154]
call esi
mov esi, eax
mov dword [esp + 0x20], esi
cmp dword [esp + 0x50], 8
jne 0x100073ab
xor esi, esi
mov dword [edi + 0x28], 4
lea ebx, [edi + 0x28]
mov dword [esp + 0x20], esi
lea ecx, [esi + 4]
jmp 0x100073c4
xor eax, eax
test esi, esi
setns al
dec eax
test esi, eax
jne 0x10007595
mov ecx, dword [esp + 0x54]
lea ebx, [edi + 0x28]
mov dword [ebx], ecx
movzx eax, word [edi + 6]
mov edx, 0x81
cmp ax, dx
jne 0x100073d5
inc ecx
jmp 0x100073e6
mov edx, 0x82
cmp ax, dx
jne 0x100073e8
add ecx, 2
mov byte [edi + 0x1e], 0
mov dword [ebx], ecx
mov al, byte [edi + 0x1e]
mov edx, dword [edi + 0x24]
mov byte [esp + 0x28], al
movzx eax, al
add eax, ecx
cmp eax, edx
jbe 0x10007450
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], 1
mov ecx, dword [eax + 0x18]
mov al, byte [esp + 0x28]
mov byte [esp + 0x28], al
test ecx, ecx
je 0x10007445
push ecx
push dword [0x100133c0]
call dword [sym.imp.MSDART.DLL_MpHeapFree]
mov eax, dword [esp + 0x2c]
add esp, 8
mov byte [esp + 0x2f], 1
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov al, byte [edi + 0x1e]
mov edx, dword [edi + 0x24]
jmp 0x10007454
mov al, byte [esp + 0x28]
mov byte [esp + 0x2f], 1
jmp 0x10007454
mov al, byte [esp + 0x28]
movzx ecx, al
mov eax, dword [ebx]
add eax, ecx
cmp edx, eax
ja 0x10007461
mov edx, eax
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x24]
add eax, 8
mov ecx, dword [esp + 0x40]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x10007487
add edx, 0x20
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x48]
add ecx, 0x10
inc esi
mov dword [esp + 0x40], ecx
add edi, 0x40
mov dword [esp + 0x48], esi
cmp esi, dword [ebx + 8]
mov esi, dword [esp + 0x20]
jb 0x10007070
cmp byte [esp + 0x2f], 0
je 0x10007784
mov edi, dword [esp + 0x44]
xor ecx, ecx
add edi, 0x40
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
cmp dword [edi], ecx
jne 0x1000751c
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x100075a4
mov ecx, dword [ecx + 0x30]
test ecx, ecx
je 0x100075a4
mov eax, dword [ecx]
push edi
push 0x100038b4
push ecx
mov esi, dword [eax]
mov ecx, esi
call dword [0x10014154]
call esi
test eax, eax
js 0x100075a4
mov esi, dword [edi + 4]
cmp byte [esi + 0x34], 0
je 0x1000751c
add dword [esi + 0x2c], 0xffffffff
jne 0x1000751c
mov ecx, esi
call fcn.10004360
push ecx
mov ecx, esi
call fcn.10005010
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x10007525
xor eax, eax
mov esi, dword [eax]
lea edx, [esp + 0x40]
push edx
lea edx, [esp + 0x6c]
push edx
mov esi, dword [esi + 0x14]
lea edx, [esp + 0x74]
push edx
push dword [ebx + 4]
mov ecx, esi
push eax
call dword [0x10014154]
call esi
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
je 0x100075af
push 0x10001b30
push 0xccc09
jmp 0x100082ac
push 0x10001b30
push 0x9bc09
jmp 0x100082ac
push 0x10001b30
push 0x9cc09
jmp 0x100082ac
push 0x10001b30
push 0xb6009
jmp 0x100082ac
push 0x10001b30
push 0xbec09
jmp 0x100082ac
mov dword [edi], 0xffffffff
jmp 0x10007523
cmp dword [edi], 0
jne 0x100075f9
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x10007638
mov ecx, dword [ecx + 0x30]
test ecx, ecx
je 0x10007638
mov eax, dword [ecx]
push edi
push 0x100038b4
push ecx
mov esi, dword [eax]
mov ecx, esi
call dword [0x10014154]
call esi
test eax, eax
js 0x10007638
mov esi, dword [edi + 4]
cmp byte [esi + 0x34], 0
je 0x100075f9
add dword [esi + 0x2c], 0xffffffff
jne 0x100075f9
mov ecx, esi
call fcn.10004360
push ecx
mov ecx, esi
call fcn.10005010
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x10007602
xor eax, eax
mov esi, dword [eax]
push 0
push dword [ebx + 4]
mov esi, dword [esi + 0x18]
mov ecx, esi
push eax
call dword [0x10014154]
call esi
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
je 0x10007640
push 0x10001b30
push 0xcec09
jmp 0x100082ac
mov dword [edi], 0xffffffff
jmp 0x10007600
cmp dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [esp + 0x48], 0
jbe 0x100076d9
mov edi, dword [esp + 0x24]
xor ebx, ebx
xor esi, esi
mov edx, dword [edi + 0xc]
movzx ecx, byte [esi + edx + 0x1e]
mov eax, dword [esi + edx + 0x28]
mov edx, dword [esi + edx + 0x24]
add eax, ecx
cmp edx, eax
ja 0x10007679
mov edx, eax
mov eax, dword [esp + 0x40]
add edx, 8
mov ecx, dword [esp + 0x28]
mov dword [ebx + eax + 0xc], ecx
add ecx, 4
mov eax, dword [esp + 0x40]
mov dword [ebx + eax + 8], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x28], edx
add ecx, 8
mov dword [ebx + eax + 4], ecx
mov ecx, edx
mov eax, dword [edi + 0xc]
movzx eax, byte [esi + eax + 0x1e]
add esi, 0x40
sub ecx, eax
mov eax, dword [esp + 0x40]
sub ecx, 8
mov dword [ebx + eax + 0x28], ecx
add ebx, 0x34
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, dword [edi + 8]
jb 0x10007661
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
cmp dword [edi], 0
jne 0x1000771c
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x1000776f
mov ecx, dword [ecx + 0x30]
test ecx, ecx
je 0x1000776f
mov eax, dword [ecx]
push edi
push 0x100038b4
push ecx
mov esi, dword [eax]
mov ecx, esi
call dword [0x10014154]
call esi
test eax, eax
js 0x1000776f
mov eax, dword [edi + 4]
cmp byte [eax + 0x34], 0
je 0x1000771c
push eax
call fcn.10004fe0
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x10007725
xor eax, eax
mov esi, dword [eax]
lea ecx, [ebx + 4]
push 0
push ecx
push 0
push dword [esp + 0x4c]
mov esi, dword [esi + 0x10]
mov ecx, esi
push dword [esp + 0x78]
push dword [esp + 0x80]
push eax
call dword [0x10014154]
call esi
push dword [esp + 0x40]
mov esi, eax
mov dword [esp + 0x24], esi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
test esi, esi
jns 0x10007784
push 0x10001b30
push 0xd6809
jmp 0x100082ac
mov dword [edi], 0xffffffff
jmp 0x10007723
shl ecx, 5
mov dword [esp + 0x3c], ecx
jmp 0x10007788
xor ecx, ecx
jmp 0x10007788
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x18]
mov edi, eax
test eax, eax
je 0x100077b6
cmp dword [ebx + 0x1c], ecx
jae 0x100077b6
push eax
push dword [0x100133c0]
call dword [sym.imp.MSDART.DLL_MpHeapFree]
add esp, 8
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
xor edi, edi
test edi, edi
jne 0x1000781f
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x1000781f
push eax
push 0xd00000
push dword [0x100133c0]
call dword [sym.imp.MSDART.DLL_MpHeapAlloc]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x100077ef
mov ecx, 0x8007000e
call fcn.10011310
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x100077f5
xor esi, esi
mov dword [esp + 0x20], esi
test esi, esi
je 0x10007808
push 0x10001b30
push 0xdc009
jmp 0x100082ac
push dword [esp + 0x3c]
push edi
call fcn.10006fd0
mov eax, dword [esp + 0x44]
add esp, 8
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x1c], eax
cmp dword [esp + 0x30], 0
jne 0x10007831
cmp dword [esp + 0x38], 0
je 0x100082ba
mov eax, dword [esp + 0x24]
xor edx, edx
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x3c], edx
cmp dword [eax + 8], edx
jbe 0x100082be
fld qword [0x100039d8]
fstp qword [esp + 0x90]
fld qword [0x10003a00]
fstp qword [esp + 0x98]
fld qword [0x100039e8]
fstp qword [esp + 0x108]
movzx ecx, byte [ebx + 0x1e]
add ecx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x24]
cmp eax, ecx
ja 0x10007882
mov eax, ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1000823f
mov dx, word [ebx + 4]
lea ecx, [ebx + 0x2c]
push ecx
mov ecx, eax
call fcn.1000ffe0
add esp, 4
test al, al
jne 0x100078b9
mov dword [edi], 3
mov dword [edi + 4], 0
jmp case.default.0x100078cb
mov dword [edi], 0
mov eax, dword [ebx]
dec eax
cmp eax, 4
ja case.default.0x100078cb
jmp dword [eax*4 + 0x10008330]
mov eax, dword [esp + 0x38]
movzx ecx, word [eax]
cmp ecx, 9
je 0x100078f9
cmp ecx, 0xd
je 0x100078f9
mov ecx, 0x80020005
call fcn.1000fcc2
mov esi, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
jmp 0x100078ff
xor esi, esi
mov dword [esp + 0x20], esi
test esi, esi
jne 0x1000825a
mov eax, dword [eax + 8]
mov dword [edi + 8], eax
mov dword [edi + 4], 4
jmp case.default.0x100078cb
mov ecx, dword [esp + 0x38]
mov dword [edi + 4], 0x10
mov eax, dword [ecx]
mov dword [edi + 8], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x14], eax
jmp case.default.0x100078cb
mov edx, dword [esp + 0x38]
movzx eax, word [ebx + 4]
cwde
movzx ecx, word [edx]
cmp ecx, eax
je 0x10007a10
cmp word [edx], 0xc
je 0x10007a10
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x10007997
mov eax, dword [ecx]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xbc], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xc0], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xc4], eax
mov dword [ebx + 0x2c], 0
lea esi, [ebx + 0x30]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
movzx eax, word [ebx + 4]
push eax
mov eax, dword [esp + 0x3c]
push 0
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
cmp dword [esp + 0x30], 0
mov esi, eax
mov dword [esp + 0x20], esi
je 0x100079cf
lea eax, [esp + 0xb8]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor eax, eax
test esi, esi
setns al
dec eax
test esi, eax
jne 0x10008266
cmp word [ebx + 4], 0xe
lea ecx, [ebx + 0x30]
mov dword [ebx + 0x2c], ecx
jne 0x10007a05
mov eax, dword [ecx]
mov dword [edi + 8], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x14], eax
jmp 0x10007a3c
mov eax, dword [ebx + 0x38]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x3c]
jmp 0x10007a39
cmp word [ebx + 4], 0xe
jne 0x10007a30
mov eax, dword [edx]
mov dword [edi + 8], eax
mov eax, dword [edx + 4]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0xc]
mov dword [edi + 0x14], eax
jmp 0x10007a3c
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [edi + 0xc], eax
xor eax, eax
cmp word [ebx + 4], 0xe
sete al
lea eax, [eax*8 + 8]
mov dword [edi + 4], eax
jmp case.default.0x100078cb
mov edx, dword [esp + 0x38]
movsx ecx, word [ebx + 4]
movzx eax, word [edx]
cmp eax, ecx
je 0x10007ab4
lea eax, [esp + 0x118]
mov byte [esp + 0x2f], 1
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
movzx eax, word [ebx + 4]
push eax
mov eax, dword [esp + 0x3c]
push 0
push eax
lea eax, [esp + 0x124]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
jne 0x10008272
lea ecx, [esp + 0x118]
mov dword [esp + 0x30], ecx
jmp 0x10007abf
mov byte [esp + 0x2f], 0
mov ecx, edx
mov dword [esp + 0x30], edx
movzx eax, word [ebx + 6]
add eax, 0xfffffff2
cmp eax, 0x79
ja case.0x10007ad6.15
movzx eax, byte [eax + 0x10008378]
jmp dword [eax*4 + 0x10008344]
mov al, byte [ecx + 8]
mov byte [edi + 8], al
mov dword [edi + 4], 1
jmp 0x10007fb4
mov ax, word [ecx + 8]
mov word [edi + 8], ax
mov dword [edi + 4], 2
jmp 0x10007fb4
mov eax, dword [ecx + 8]
mov dword [edi + 8], eax
mov dword [edi + 4], 4
jmp 0x10007fb4
fld qword [ecx + 8]
fld st(0)
fmul qword [esp + 0x90]
call sub.msvcrt.dll__ftol2_sse
mov ecx, eax
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fnstcw word [esp + 0x28]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [esp + 0x98]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [edi + 0xc], ecx
mov dword [esp + 0x30], eax
fsubp st(1)
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [edi + 8], eax
fldcw word [esp + 0x28]
jmp 0x10007fad
fld qword [ecx + 8]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fld st(0)
fmul qword [esp + 0x90]
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov ecx, dword [esp + 0x30]
fldcw word [esp + 0x28]
fild dword [esp + 0x30]
test ecx, ecx
jns 0x10007baa
fadd qword [0x10003a00]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [esp + 0x98]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [edi + 0xc], ecx
mov dword [esp + 0x30], eax
fsubp st(1)
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [edi + 8], eax
fldcw word [esp + 0x28]
jmp 0x10007fad
mov ecx, dword [ecx + 8]
lea edx, [edi + 8]
call fcn.10010230
test eax, eax
jne 0x10007c13
mov ecx, 0x80020005
call fcn.1000fcc2
mov esi, eax
mov dword [esp + 0x20], eax
mov dword [edi + 4], 0x10
jmp 0x10007fb4
xor esi, esi
mov dword [edi + 4], 0x10
mov dword [esp + 0x20], esi
jmp 0x10007fb4
fld qword [ecx + 8]
sub esp, 8
lea ecx, [esp + 0x158]
fstp qword [esp]
call fcn.100104d0
add esp, 8
test eax, eax
jne 0x10007c53
mov ecx, 0x80020005
call fcn.10011310
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x10007c59
xor esi, esi
mov dword [esp + 0x20], esi
movzx eax, word [esp + 0x164]
mov cx, word [esp + 0x15c]
mov word [esp + 0x88], ax
movzx eax, word [esp + 0x160]
mov word [esp + 0x8a], ax
mov eax, dword [esp + 0x88]
mov dword [edi + 8], eax
mov word [edi + 0xc], cx
mov dword [edi + 4], 6
jmp 0x10007fb4
fld qword [ecx + 8]
sub esp, 8
lea ecx, [esp + 0x17c]
fstp qword [esp]
call fcn.100104d0
add esp, 8
test eax, eax
jne 0x10007cc9
mov ecx, 0x80020005
call fcn.10011310
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x10007ccf
xor esi, esi
mov dword [esp + 0x20], esi
movzx eax, word [esp + 0x17c]
mov cx, word [esp + 0x174]
mov word [esp + 0x70], ax
movzx eax, word [esp + 0x178]
mov word [esp + 0x72], ax
mov eax, dword [esp + 0x70]
mov dword [edi + 8], eax
mov word [edi + 0xc], cx
mov dword [edi + 4], 6
jmp 0x10007fb4
fld qword [ecx + 8]
sub esp, 8
lea ecx, [esp + 0x134]
fstp qword [esp]
call fcn.100104d0
add esp, 8
test eax, eax
jne 0x10007d36
mov ecx, 0x80020005
call fcn.10011310
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x10007d3c
xor esi, esi
mov dword [esp + 0x20], esi
movzx eax, word [esp + 0x134]
mov word [esp + 0x5e], ax
movzx eax, word [esp + 0x130]
mov word [esp + 0x60], ax
movzx eax, word [esp + 0x12c]
mov word [esp + 0x62], ax
movzx eax, word [esp + 0x140]
mov word [esp + 0x58], ax
movzx eax, word [esp + 0x13c]
mov word [esp + 0x5a], ax
movzx eax, word [esp + 0x138]
mov word [esp + 0x5c], ax
mov eax, dword [esp + 0x58]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0
mov dword [edi + 4], 0x10
jmp 0x10007fb4
mov eax, dword [ecx]
mov dword [edi + 8], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x14], eax
mov dword [edi + 4], 0x10
jmp 0x10007fb4
mov al, byte [ecx + 2]
mov edx, 0x60
cmp byte [ecx + 3], 0
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x199], al
sete byte [esp + 0x19a]
mov al, byte [ecx + 8]
mov ecx, dword [ecx + 8]
mov byte [esp + 0x19b], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x19c], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x19d], al
mov al, byte [ebx + 0xc]
mov byte [esp + 0x19f], al
shr ecx, 0x18
mov byte [esp + 0x19e], cl
mov ecx, dword [ebx + 0xc]
mov eax, ecx
shr eax, 8
mov byte [esp + 0x1a0], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x1a1], al
mov al, byte [ebx + 4]
shr ecx, 0x18
mov byte [esp + 0x1a3], al
mov byte [esp + 0x1a2], cl
mov ecx, dword [ebx + 4]
mov eax, ecx
shr eax, 8
lea ebx, [esp + 0x1a6]
mov byte [esp + 0x1a4], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov dword [esp + 0x1ac], 0x2020304
mov dword [esp + 0x1b0], 0x1010101
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], 0
mov byte [esp + 0x1a5], al
mov byte [esp + 0x1a6], cl
mov dword [esp + 0x1a7], 0
nop
mov cl, byte [ebx]
movzx eax, cl
mov dword [esp + 0x30], eax
shr eax, 4
movzx eax, byte [esp + eax + 0x1ac]
sub edx, eax
test cl, 0xf0
jne 0x10007ef2
mov eax, dword [esp + 0x30]
movzx eax, byte [esp + eax + 0x1ac]
sub edx, eax
test cl, cl
jne 0x10007ef2
dec ebx
test edx, edx
jne 0x10007ec0
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
test edx, edx
jns 0x10007f04
fadd qword [0x10003a00]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
sub esp, 8
fmul qword [esp + 0x110]
fstp qword [esp]
call sub.msvcrt.dll_ceil
fnstcw word [esp + 0x30]
movzx eax, word [esp + 0x30]
add esp, 8
or eax, 0xc00
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x30], eax
mov dword [edi + 4], 0x13
fldcw word [esp + 0x30]
fistp dword [esp + 0x30]
mov al, byte [esp + 0x30]
mov byte [esp + 0x198], al
mov eax, dword [esp + 0x198]
fldcw word [esp + 0x28]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x19c]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x1a0]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x1a4]
mov dword [edi + 0x14], eax
mov ax, word [esp + 0x1a8]
mov word [edi + 0x18], ax
mov al, byte [esp + 0x1aa]
mov byte [edi + 0x1a], al
jmp 0x10007fb4
mov ecx, 0x80020005
call fcn.10011310
mov esi, eax
mov dword [esp + 0x20], esi
jmp 0x10007fb4
fld qword [ecx + 8]
fstp qword [edi + 8]
mov dword [edi + 4], 8
cmp byte [esp + 0x2f], 0
je case.default.0x100078cb
lea eax, [esp + 0x118]
jmp 0x10008229
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 0x28]
mov dword [edi + 4], eax
movsx ecx, word [ebx + 4]
movzx eax, word [edx]
cmp eax, ecx
je 0x10008137
lea eax, [esp + 0x78]
mov dword [esp + 0x30], 1
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x38]
cmp word [ecx], 8
jne 0x10008101
mov eax, 0x2011
cmp word [ebx + 4], ax
jne 0x10008101
push dword [ecx + 8]
mov dword [esp + 0xa8], 0
call dword [sym.imp.OLEAUT32.dll_VariantInit]
shr eax, 1
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
push 1
push 0x11
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov dword [esp + 0x80], eax
test eax, eax
jne 0x10008060
mov ecx, 0x8007000e
call fcn.1000fcc2
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x10008066
xor esi, esi
mov dword [esp + 0x20], esi
test esi, esi
jne 0x1000827e
mov eax, 0x2011
mov word [esp + 0x78], ax
mov eax, dword [0x10013404]
push 1
push 0
push 0
mov esi, dword [eax]
lea eax, [esp + 0x11c]
push eax
mov eax, dword [esp + 0x48]
push 0
push dword [eax + 8]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov esi, dword [esi + 0xc]
mov ecx, esi
push eax
mov eax, dword [esp + 0x98]
push dword [eax + 0xc]
lea eax, [esp + 0x130]
push dword [esp + 0x54]
push eax
push 0
push 0x80
push 0xc
push dword [0x10013404]
call dword [0x10014154]
call esi
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
jns 0x100080e6
push dword [esp + 0x80]
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
xor eax, eax
test esi, esi
setns al
dec eax
test esi, eax
je 0x1000812d
push 0x10001b30
push 0x13b409
jmp 0x100082ac
movzx eax, word [ebx + 4]
push eax
push 0
push ecx
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
jne 0x1000828a
lea ecx, [esp + 0x78]
mov dword [esp + 0x44], ecx
jmp 0x10008145
mov dword [esp + 0x30], 0
mov ecx, edx
mov dword [esp + 0x44], edx
movzx eax, word [ebx + 6]
mov edx, 0x81
cmp ax, dx
jne 0x100081af
mov eax, dword [edi + 4]
test eax, eax
je 0x100081a5
push 0
push 0
push eax
lea eax, [edi + 8]
push eax
push dword [ecx + 8]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push eax
mov eax, dword [esp + 0x58]
push dword [eax + 8]
push 0x400
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x10008197
mov ecx, 0x80020005
call fcn.10011310
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x1000819d
xor esi, esi
mov dword [esp + 0x20], esi
test esi, esi
jne 0x10008296
mov eax, dword [edi + 4]
mov byte [eax + edi + 8], 0
jmp 0x1000821e
mov edx, 0x82
cmp ax, dx
jne 0x100081d9
push dword [edi + 4]
lea eax, [edi + 8]
push dword [ecx + 8]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [edi + 4]
add esp, 0xc
shr eax, 1
xor ecx, ecx
mov word [edi + eax*2 + 8], cx
jmp 0x1000821e
push dword [ecx + 8]
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x20], esi
setns al
dec eax
test esi, eax
jne 0x100082a2
mov eax, dword [esp + 0x44]
push dword [edi + 4]
mov eax, dword [eax + 8]
push dword [eax + 0xc]
lea eax, [edi + 8]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x50]
add esp, 0xc
push dword [eax + 8]
call dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
cmp dword [esp + 0x30], 0
je case.default.0x100078cb
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x3c]
add edi, 8
add edi, dword [ebx + 0x24]
add dword [esp + 0x38], 0x10
mov eax, dword [esp + 0x24]
inc edx
add ebx, 0x40
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], ebx
cmp edx, dword [eax + 8]
jb 0x10007872
jmp 0x100082be
push 0x10001b30
push 0xe7009
jmp 0x100082ac
push 0x10001b30
push 0xf1409
jmp 0x100082ac
push 0x10001b30
push 0xfc809
jmp 0x100082ac
push 0x10001b30
push 0x136809
jmp 0x100082ac
push 0x10001b30
push 0x13c409
jmp 0x100082ac
push 0x10001b30
push 0x143409
jmp 0x100082ac
push 0x10001b30
push 0x147009
mov eax, dword [0x100150e4]
push eax
call fcn.10009410
add esp, 0xc
mov eax, dword [esp + 0x24]
test esi, esi
jns 0x10008317
cmp dword [esp + 0x4c], 1
jne 0x10008317
mov edi, dword [eax + 0xc]
xor ebx, ebx
cmp dword [eax + 8], ebx
jbe 0x10008317
mov esi, dword [esp + 0x24]
add edi, 0x2c
lea ebx, [ebx]
mov eax, dword [edi]
test eax, eax
je 0x100082f3
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [edi], 0
inc ebx
add edi, 0x40
cmp ebx, dword [esi + 8]
jb 0x100082e0
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.10011be0
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [esp + 0x1bc]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10011be0
mov esp, ebp
pop ebp
ret 0xc