Function at 0x887696
Capabilities:
Parse pe header

Disassembly:
mov eax, 0xc43e76
call fcn.00be12c8
sub esp, 0x94
push ebx
push esi
push edi
mov esi, ecx
lea ecx, [esi + 0x1e4]
xor edi, edi
push edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x40], ecx
call fcn.0042d57d
call dword [0xd8648c]
mov dword [esi + 0x1f4], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1f8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp eax, edi
je 0x888dc3
cmp byte [eax], 0
je 0x888dc3
mov ecx, dword [0xd7c41c]
push 1
push dword [esi + 0xb8]
lea eax, [ebp - 0x5c]
push eax
call fcn.0041330c
push 0x50
push ecx
mov eax, esp
mov dword [ebp + 0x10], esp
push 0x63d
push eax
mov dword [ebp - 4], edi
call fcn.00877d11
mov ecx, eax
call fcn.00406a03
and byte [ebp - 4], 0
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00402691
mov ecx, eax
call fcn.00403881
push eax
mov byte [ebp - 4], 2
call fcn.004175f4
and byte [ebp - 4], 0
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x70]
push eax
call fcn.00402973
add esp, 0xc
cmp eax, edi
jge 0x88775c
push eax
call fcn.00be0541
push 0x14
mov ecx, 0xd86a88
call fcn.004030bb
mov ebx, eax
cmp ebx, edi
je 0x887791
push 0xc
push edi
push ebx
mov dword [ebx], 0xc83450
call fcn.00be1770
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov dword [ebx], 0xc84200
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], edi
jmp 0x887793
xor ebx, ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x54], ebx
call fcn.00662bef
push edi
push edi
push edi
lea eax, [esi + 0x1e8]
push eax
lea eax, [esi + 0x1ec]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x60], esp
push dword [ebp + 8]
mov byte [ebp - 4], 3
call fcn.0042d265
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.00471976
mov ecx, eax
call fcn.00af4568
mov ebx, 0xd8d000
push ebx
lea ecx, [ebp - 0x3c]
mov dword [esi + 0x1f0], eax
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00402fdb
cmp dword [0xd87954], edi
mov byte [ebp - 4], 6
jne 0x88780b
push 0x80004003
call fcn.00be0541
mov ecx, dword [0xd87954]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [esi + 0x1f0]
push 0xa
add eax, 0x5c
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x26
push eax
push edi
push edi
lea eax, [ebp + 8]
push eax
call fcn.0042bac5
push dword [eax]
mov ecx, dword [ebp - 0x40]
call fcn.0042d57d
lea ecx, [ebp + 8]
call fcn.00418618
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 5
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887861
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 3
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887879
push eax
call fcn.00be0541
mov esi, dword [esi + 0x17c]
push 1
push esi
lea ecx, [ebp - 0x2c]
call fcn.00413c1f
mov eax, dword [ebp - 0x40]
cmp dword [eax], edi
mov byte [ebp - 4], 7
jne 0x88789f
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x1c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x1e4
mov eax, dword [eax]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp + 8], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x64]
test eax, eax
jge 0x8878d0
push 0xd3bb88
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 3
call fcn.00402973
test eax, eax
pop ecx
jge 0x8878e8
push eax
call fcn.00be0541
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + 0xec]
push 1
push eax
lea ecx, [ebp - 0x2c]
call fcn.00413c1f
cmp dword [esi + 0x1e4], 0
lea eax, [esi + 0x1e4]
mov byte [ebp - 4], 8
jne 0x887919
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x1c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x1e4
mov eax, dword [eax]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp + 8], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0xfc]
test eax, eax
jge 0x88794d
push 0xd3bb98
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 3
call fcn.00402973
test eax, eax
pop ecx
jge 0x887965
push eax
call fcn.00be0541
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1e4], 0
lea edi, [eax + 0x1e4]
jne 0x887981
push 0x80004003
call fcn.00be0541
mov esi, dword [edi]
mov eax, dword [esi]
push 0xffffffffffffffff
push esi
call dword [eax + 0xe0]
test eax, eax
jge 0x88799e
push 0xd3bb98
push esi
push eax
call fcn.00be054f
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call fcn.00402fdb
cmp dword [edi], 0
mov byte [ebp - 4], 0xa
jne 0x8879c7
push 0x80004003
call fcn.00be0541
sub esp, 0x10
mov edi, esp
mov eax, dword [ebp - 0x1c]
lea esi, [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
add eax, 0x1e4
mov eax, dword [eax]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
push 0
push eax
mov dword [ebp + 8], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x887a0b
push 0xd3bb88
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 9
call fcn.00402973
test eax, eax
pop ecx
jge 0x887a23
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 3
call fcn.00402973
test eax, eax
pop ecx
jge 0x887a3b
push eax
call fcn.00be0541
mov edi, dword [ebp - 0x1c]
cmp dword [edi + 0x1e4], 0
lea esi, [edi + 0x1e4]
mov dword [ebp - 0x40], esi
jne 0x887a5a
push 0x80004003
call fcn.00be0541
push 0xffffffffffffffa6
pop eax
sub eax, dword [edi + 0x1f0]
mov esi, dword [esi]
sub eax, dword [ebp + 0x10]
mov ecx, dword [esi]
push eax
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffffe
pop edi
cdq
idiv edi
push eax
push esi
call dword [ecx + 0x44]
xor edi, edi
cmp eax, edi
jge 0x887a8b
push 0xd3b9f8
push esi
push eax
call fcn.00be054f
push 3
push edi
lea ecx, [ebp - 0x90]
call fcn.00403001
mov esi, dword [ebp - 0x40]
cmp dword [esi], edi
mov byte [ebp - 4], 0xb
jne 0x887aae
push 0x80004003
call fcn.00be0541
mov ecx, dword [esi]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0042ab76
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0xd
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887adb
push eax
call fcn.00be0541
mov dword [ebp - 0x18], edi
lea eax, [ebp + 0x10]
push 0x4ec
push eax
mov byte [ebp - 4], 0xe
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0xf
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x10
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0xf
je 0x887b3c
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov byte [ebp - 4], 0xe
je 0x887b51
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x70]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x11
call fcn.00402fdb
push edi
push edi
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x12
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0xa0]
push eax
mov byte [ebp - 4], 0x12
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.00403308
cmp eax, edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x14], edi
je 0x887bd9
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, edi
jge 0x887bd9
cmp eax, 0x80004002
je 0x887bd9
push eax
call fcn.00be0541
lea eax, [ebp - 0xa0]
push eax
mov byte [ebp - 4], 0x18
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887bf4
push eax
call fcn.00be0541
lea eax, [ebp - 0x80]
push eax
mov byte [ebp - 4], 0x17
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887c0c
push eax
call fcn.00be0541
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887c24
push eax
call fcn.00be0541
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov eax, dword [ebp - 0x10]
cmp eax, edi
mov byte [ebp - 4], 0x19
jne 0x887c45
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
push 0
push eax
mov dword [ebp + 8], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x80]
test eax, eax
jge 0x887c76
push 0xd3b9b8
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
xor edi, edi
cmp eax, edi
pop ecx
jge 0x887c90
push eax
call fcn.00be0541
lea eax, [ebp + 0x10]
push 0x4ed
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x1a
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x1b
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x1a
je 0x887cea
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov byte [ebp - 4], 0x16
je 0x887cff
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1c
call fcn.00402fdb
push edi
push edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x1d
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x1d
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x1f
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, edi
jge 0x887d7d
cmp eax, 0x80004002
je 0x887d7d
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x1d
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887d95
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887dad
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x887dc5
push eax
call fcn.00be0541
cmp dword [ebp + 0xc], edi
mov dword [ebp + 8], edi
jle 0x887e47
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [ebp - 4], 0x20
jne 0x887dee
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
add edx, 0x13
push edx
push eax
mov dword [ebp + 0x10], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x80]
test eax, eax
jge 0x887e24
push 0xd3b9b8
push dword [ebp + 0x10]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x887e3c
push eax
call fcn.00be0541
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0xc]
jl 0x887dcd
lea eax, [ebp + 0x10]
push 0x4ee
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x21
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x22
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x21
je 0x887ea1
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
test eax, eax
mov byte [ebp - 4], 0x16
je 0x887eb6
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x23
call fcn.00402fdb
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x24
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x24
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x26
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
test eax, eax
jge 0x887f36
cmp eax, 0x80004002
je 0x887f36
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x24
call fcn.00402973
test eax, eax
pop ecx
jge 0x887f4e
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x23
call fcn.00402973
test eax, eax
pop ecx
jge 0x887f66
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x887f7e
push eax
call fcn.00be0541
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [ebp - 4], 0x27
jne 0x887f9f
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
add ecx, 0x13
movsd dword es:[edi], dword [esi]
push ecx
push eax
mov dword [ebp + 8], eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0x80]
test eax, eax
jge 0x887fd5
push 0xd3b9b8
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
xor edi, edi
cmp eax, edi
pop ecx
jge 0x887fef
push eax
call fcn.00be0541
lea eax, [ebp + 0x10]
push 0x4f0
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x28
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x29
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x28
je 0x888049
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov byte [ebp - 4], 0x16
je 0x88805e
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x2a
call fcn.00402fdb
push edi
push edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x2b
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x2b
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x2d
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, edi
jge 0x8880dc
cmp eax, 0x80004002
je 0x8880dc
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x2b
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x8880f4
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x2a
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x88810c
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x888124
push eax
call fcn.00be0541
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1f0], edi
mov dword [ebp + 8], edi
jle 0x8881b6
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [ebp - 4], 0x2e
jne 0x888157
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add edx, 0x15
push edx
movsd dword es:[edi], dword [esi]
push 0
push eax
mov dword [ebp + 0x10], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x80]
test eax, eax
jge 0x88818d
push 0xd3b9b8
push dword [ebp + 0x10]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x8881a5
push eax
call fcn.00be0541
inc dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x1f0]
jl 0x888136
lea eax, [ebp + 0x10]
push 0x4ef
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x2f
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x30
call fcn.00419a49
mov eax, dword [ebp + 8]
xor esi, esi
add esp, 0xc
cmp eax, esi
mov byte [ebp - 4], 0x2f
je 0x888212
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
cmp eax, esi
mov byte [ebp - 4], 0x16
je 0x888227
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x31
call fcn.00402fdb
push esi
push esi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x32
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x32
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x34
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, esi
jge 0x8882a5
cmp eax, 0x80004002
je 0x8882a5
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x32
call fcn.00402973
cmp eax, esi
pop ecx
jge 0x8882bd
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x31
call fcn.00402973
cmp eax, esi
pop ecx
jge 0x8882d5
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, esi
pop ecx
jge 0x8882ed
push eax
call fcn.00be0541
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1f0], esi
mov dword [ebp + 8], esi
jle 0x888388
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [ebp - 4], 0x35
jne 0x888320
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
add ecx, 0x15
movsd dword es:[edi], dword [esi]
push ecx
mov ecx, dword [ebp + 0xc]
movsd dword es:[edi], dword [esi]
add ecx, 0x13
push ecx
push eax
mov dword [ebp + 0x10], eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0x80]
test eax, eax
jge 0x88835b
push 0xd3b9b8
push dword [ebp + 0x10]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x888373
push eax
call fcn.00be0541
inc dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x1f0]
jl 0x8882ff
lea eax, [ebp + 0x10]
push 0x4f2
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x36
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x37
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x36
je 0x8883e2
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
test eax, eax
mov byte [ebp - 4], 0x16
je 0x8883f7
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x38
call fcn.00402fdb
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x39
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x39
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x3b
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
test eax, eax
jge 0x888477
cmp eax, 0x80004002
je 0x888477
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x39
call fcn.00402973
test eax, eax
pop ecx
jge 0x88848f
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x38
call fcn.00402973
test eax, eax
pop ecx
jge 0x8884a7
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x8884bf
push eax
call fcn.00be0541
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov byte [ebp - 4], 0x3c
jne 0x8884e0
push 0x80004003
call fcn.00be0541
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ecx]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x15
push eax
movsd dword es:[edi], dword [esi]
push 0
push ecx
mov dword [ebp + 8], ecx
movsd dword es:[edi], dword [esi]
call dword [edx + 0x80]
test eax, eax
jge 0x88851c
push 0xd3b9b8
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
xor edi, edi
cmp eax, edi
pop ecx
jge 0x888536
push eax
call fcn.00be0541
lea eax, [ebp + 0x10]
push 0x4f3
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x3d
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x3e
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x3d
je 0x888590
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov byte [ebp - 4], 0x16
je 0x8885a5
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x3f
call fcn.00402fdb
push edi
push edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x40
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x40
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x42
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, edi
jge 0x888623
cmp eax, 0x80004002
je 0x888623
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x40
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x88863b
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x3f
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x888653
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x88866b
push eax
call fcn.00be0541
cmp dword [ebp + 0xc], edi
mov dword [ebp + 8], edi
jle 0x888700
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov byte [ebp - 4], 0x43
jne 0x888698
push 0x80004003
call fcn.00be0541
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ecx]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
add eax, 0x15
movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [ebp + 8]
movsd dword es:[edi], dword [esi]
add eax, 0x13
push eax
push ecx
mov dword [ebp + 0x10], ecx
movsd dword es:[edi], dword [esi]
call dword [edx + 0x80]
test eax, eax
jge 0x8886d9
push 0xd3b9b8
push dword [ebp + 0x10]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x8886f1
push eax
call fcn.00be0541
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0xc]
jl 0x888677
lea eax, [ebp + 0x10]
push 0x4f4
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x44
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x45
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x44
je 0x88875a
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
test eax, eax
mov byte [ebp - 4], 0x16
je 0x88876f
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x46
call fcn.00402fdb
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x47
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x47
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x49
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
test eax, eax
jge 0x8887ef
cmp eax, 0x80004002
je 0x8887ef
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x47
call fcn.00402973
test eax, eax
pop ecx
jge 0x888807
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x46
call fcn.00402973
test eax, eax
pop ecx
jge 0x88881f
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x888837
push eax
call fcn.00be0541
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov byte [ebp - 4], 0x4a
jne 0x888858
push 0x80004003
call fcn.00be0541
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ecx]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
add eax, 0x15
movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [ebp + 0xc]
movsd dword es:[edi], dword [esi]
add eax, 0x13
push eax
push ecx
mov dword [ebp + 8], ecx
movsd dword es:[edi], dword [esi]
call dword [edx + 0x80]
test eax, eax
jge 0x888899
push 0xd3b9b8
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
xor edi, edi
cmp eax, edi
pop ecx
jge 0x8888b3
push eax
call fcn.00be0541
lea eax, [ebp + 0x10]
push 0x4f1
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x4b
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x4c
call fcn.00419a49
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x4b
je 0x88890d
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
mov eax, dword [ebp + 0x10]
cmp eax, edi
mov byte [ebp - 4], 0x16
je 0x888922
add eax, 0xfffffff4
push eax
call fcn.004033fd
pop ecx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x4d
call fcn.00402fdb
push edi
push edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x4e
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x4e
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x50
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, edi
jge 0x8889a0
cmp eax, 0x80004002
je 0x8889a0
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x4e
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x8889b8
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x4d
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x8889d0
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x8889e8
push eax
call fcn.00be0541
cmp dword [ebp + 0xc], edi
mov dword [ebp + 8], edi
jle 0x888aa4
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1f0], edi
mov dword [ebp + 0x10], edi
jle 0x888a95
jmp 0x888a0a
xor edi, edi
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00402fdb
mov eax, dword [ebp - 0x10]
cmp eax, edi
mov byte [ebp - 4], 0x51
jne 0x888a2b
push 0x80004003
call fcn.00be0541
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
add ecx, 0x15
movsd dword es:[edi], dword [esi]
push ecx
mov ecx, dword [ebp + 8]
movsd dword es:[edi], dword [esi]
add ecx, 0x13
push ecx
push eax
mov dword [ebp - 0x60], eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0x80]
test eax, eax
jge 0x888a66
push 0xd3b9b8
push dword [ebp - 0x60]
push eax
call fcn.00be054f
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x888a7e
push eax
call fcn.00be0541
inc dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [eax + 0x1f0]
jl 0x888a08
xor edi, edi
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0xc]
jl 0x8889f4
lea eax, [ebp + 0x10]
push 0x4f5
push eax
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
mov esi, eax
lea eax, [ebp + 8]
push 0x147a
push eax
mov byte [ebp - 4], 0x52
call fcn.00877d11
mov ecx, eax
call fcn.004069e7
push dword [esi]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x53
call fcn.00419a49
add esp, 0xc
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x52
call fcn.004026b4
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x16
call fcn.004026b4
push ebx
lea ecx, [ebp - 0x3c]
call fcn.00402fdb
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x54
call fcn.00402fdb
push edi
push edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x55
call fcn.004173e3
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004033d8
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x55
call fcn.00406be3
mov ecx, eax
call fcn.004026d6
mov ecx, eax
call fcn.00403ae9
mov ecx, eax
mov byte [ebp - 4], 0x57
call fcn.00403308
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042258b
cmp eax, edi
jge 0x888b7f
cmp eax, 0x80004002
je 0x888b7f
push eax
call fcn.00be0541
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x55
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x888b97
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x54
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x888baf
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
cmp eax, edi
pop ecx
jge 0x888bc7
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.oleaut32.dll_VariantInit]
lea eax, [ebp - 0x3c]
push ebx
push eax
call fcn.00402be2
cmp eax, edi
pop ecx
pop ecx
jge 0x888be7
push eax
call fcn.00be0541
mov ecx, dword [ebp - 0x10]
cmp ecx, edi
mov byte [ebp - 4], 0x58
jne 0x888bff
push 0x80004003
call fcn.00be0541
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1f0]
mov edx, dword [ecx]
sub esp, 0x10
add eax, 0x23
mov edi, esp
push dword [ebp - 0x14]
lea esi, [ebp - 0x3c]
push eax
mov eax, dword [ebp + 0xc]
movsd dword es:[edi], dword [esi]
mov dword [ebp + 0xc], edx
cdq
movsd dword es:[edi], dword [esi]
sub eax, edx
sar eax, 1
add eax, 0xa
movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov dword [ebp + 8], ecx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x80]
test eax, eax
jge 0x888c4b
push 0xd3b9b8
push dword [ebp + 8]
push eax
call fcn.00be054f
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x888c63
push eax
call fcn.00be0541
and dword [ebp + 0xc], 0
and dword [ebp + 8], 0
mov edi, dword [sym.imp.oleaut32.dll_VariantInit]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x1ec]
test ecx, ecx
lea eax, [edx + 0x1ec]
je 0x888d64
mov esi, dword [ebp + 0xc]
cmp esi, dword [ecx - 4]
jae 0x888d64
mov esi, dword [ebp + 8]
add esi, ecx
cmp dword [esi], 0
jne 0x888d58
lea eax, [ebp - 0x2c]
push eax
call edi
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.00402be2
test eax, eax
pop ecx
pop ecx
jge 0x888cbe
push eax
call fcn.00be0541
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x59
call edi
lea eax, [ebp - 0x3c]
push ebx
push eax
call fcn.00402be2
test eax, eax
pop ecx
pop ecx
jge 0x888cde
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [esi + 0xc]
mov byte [ebp - 4], 0x5a
call fcn.0042d340
push eax
lea ecx, [esi + 0x10]
call fcn.0042d27a
push ecx
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.0042a948
mov eax, dword [esi + 0x1c]
add eax, 0x15
push eax
mov eax, dword [esi + 0x18]
add eax, 0x13
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x5a
call fcn.004172e7
mov ecx, eax
call fcn.0042c738
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x59
call fcn.00402973
test eax, eax
pop ecx
jge 0x888d40
push eax
call fcn.00be0541
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402973
test eax, eax
pop ecx
jge 0x888d58
push eax
call fcn.00be0541
inc dword [ebp + 0xc]
add dword [ebp + 8], 0x44
jmp 0x888c71
push 0x11
mov ecx, edx
call fcn.00884eb6
mov eax, dword [ebp - 0x14]
xor esi, esi
cmp eax, esi
mov byte [ebp - 4], 0xe
je 0x888d80
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xd
call fcn.004026b4
mov eax, dword [ebp - 0x10]
cmp eax, esi
mov byte [ebp - 4], 3
je 0x888d9d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and byte [ebp - 4], 0
cmp dword [ebp - 0x54], esi
je 0x888db2
push esi
lea ecx, [ebp - 0x58]
call fcn.0047197a
mov dword [ebp - 0x54], esi
mov eax, dword [ebp - 0x5c]
or dword [ebp - 4], 0xffffffff
cmp eax, esi
je 0x888dc3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0xc