Function at 0x4020c0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ecx, 0xf
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x50]
push ebx
mov ebx, eax
sub esp, 0xd4
mov dword [ebp - 0xbc], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, 0x10
mov dword [ebp - 0x54], 0x73647561
mov word [ebp - 0x4e], ax
mov eax, 0x10
mov word [ebp - 0x3e], ax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x4c], 0xaa000080
mov dword [ebp - 0x48], 0x719b3800
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x3c], 0xaa000080
mov dword [ebp - 0x38], 0x719b3800
mov dword [ebp - 0x28], 0x5589f81
mov dword [ebp - 0x24], 0x11cec356
mov dword [ebp - 0x20], 0xaa0001bf
mov dword [ebp - 0x1c], 0x5a595500
mov dword [ebp - 0x14], 0x12
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x40c4bc
mov dword [esp + 8], 1
mov dword [esp + 4], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
sub esp, 0x14
mov ebx, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xd3
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x54]
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
xor edx, edx
mov dword [ebp - 0x68], 0x20001
mov dword [ebp - 0x64], 0xac44
mov dword [ebp - 0x5c], 0x100004
mov dword [ebp - 0x60], 0x2b110
mov word [ebp - 0x58], dx
mov dword [ebp - 0x54], 0x73646976
mov dword [ebp - 0x50], 0x100000
mov dword [ebp - 0x4c], 0xaa000080
mov dword [ebp - 0x48], 0x719b3800
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov ebx, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xd9
xor eax, eax
cmp ebx, 0x80040205
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [0x412da0]
lea ecx, [ebp - 0x54]
mov ebx, dword [0x412d94]
mov esi, dword [0x412d98]
mov edi, dword [0x412d9c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], edi
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x70], eax
call fcn.004046a0
mov edx, dword [ebp - 0x70]
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xdc
xor eax, eax
cmp edx, 0x80040205
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], 0x73647561
mov dword [ebp - 0x50], 0x100000
mov dword [ebp - 0x4c], 0xaa000080
mov dword [ebp - 0x48], 0x719b3800
mov dword [ebp - 0x44], 0xe436eb7a
mov dword [ebp - 0x40], 0x11ce524f
mov dword [ebp - 0x3c], 0x2000539f
mov dword [ebp - 0x38], 0x70a70baf
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x70], eax
call fcn.004046a0
mov edx, dword [ebp - 0x70]
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xe1
xor eax, eax
cmp edx, 0x80040205
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [0x412da0]
mov dword [ebp - 0x44], ebx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], edi
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x70], eax
call fcn.004046a0
mov edx, dword [ebp - 0x70]
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xe4
xor eax, eax
cmp edx, 0x80040205
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x40], 0x100000
mov dword [ebp - 0x3c], 0xaa000080
mov dword [ebp - 0x38], 0x719b3800
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x70], eax
call fcn.004046a0
mov edx, dword [ebp - 0x70]
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xe7
xor eax, eax
test edx, edx
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x40], 0x100000
mov dword [ebp - 0x3c], 0xaa000080
mov dword [ebp - 0x38], 0x719b3800
mov dword [ebp - 0x28], 0x5589f80
mov dword [ebp - 0x24], 0x11cec356
mov dword [ebp - 0x20], 0xaa0001bf
mov dword [ebp - 0x1c], 0x5a595500
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x70], eax
call fcn.004046a0
mov edx, dword [ebp - 0x70]
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xec
xor eax, eax
cmp edx, 0x80040205
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x28], 0xf6417d6
mov dword [ebp - 0x24], 0x11d0c318
mov dword [ebp - 0x20], 0xa0003fa4
mov dword [ebp - 0x1c], 0x963122c9
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x70], eax
call fcn.004046a0
mov edx, dword [ebp - 0x70]
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xef
xor eax, eax
cmp edx, 0x80040205
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Got_hr__lx._n
call fcn.00401200
mov eax, dword [0x412da0]
mov dword [ebp - 0x28], ebx
lea ebx, [ebp - 0x54]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x20], edi
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov ebx, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0xf2
xor eax, eax
cmp ebx, 0x80040205
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Got_hr__lx._n
mov dword [esp], eax
call fcn.00401200
mov dword [ebp - 0x28], 0x5589f81
mov dword [ebp - 0x24], 0x11cec356
mov dword [ebp - 0x20], 0xaa0001bf
mov dword [ebp - 0x1c], 0x5a595500
mov dword [ebp - 0xc0], 0
lea esi, [esi]
mov eax, 8
xor esi, esi
mov word [ebp - 0x76], ax
mov eax, dword [ebp - 0xbc]
cmp dword [eax], 0x87fc0268
je 0x402b94
mov eax, dword [ebp - 0xc0]
movzx ecx, word [ebp - 0x76]
mov dword [ebp - 0xc4], esi
mov ebx, dword [eax*4 + 0x40969c]
movzx eax, word [esi*4 + 0x4096b4]
mov dword [ebp - 0x98], ecx
mov edi, ebx
mov dword [ebp - 0x70], ebx
lea edx, [ebx + ebx]
lea ebx, [ecx + ecx]
imul edi, ecx
mov word [ebp - 0x78], ax
mov dword [ebp - 0x74], eax
mov eax, 0x18
sub eax, ecx
mov dword [ebp - 0x8c], ebx
lea ebx, [edi + edi]
mov word [ebp - 0xb6], ax
movzx eax, ax
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0xa4], edi
mov edi, eax
imul edi, ebx
mov dword [ebp - 0xb0], edx
imul edx, ecx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0x90], edi
mov edi, dword [ebp - 0xa4]
mov dword [ebp - 0xac], edx
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x94], edi
mov edi, 1
mov esi, edi
movzx edi, word [ebp - 0x78]
mov eax, esi
mov ecx, dword [ebp - 0x94]
xor edx, edx
shl eax, 0x10
mov dword [ebp - 0x64], ebx
or edi, eax
movzx eax, word [ebp - 0x76]
shr ecx, 3
mov word [ebp - 0x58], dx
mov dword [ebp - 0x68], edi
mov word [ebp - 0x5a], ax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x60], ecx
sar eax, 3
mov dword [ebp - 0xa0], ecx
lea ecx, [ebp - 0x54]
mov word [ebp - 0x5c], ax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [ebp - 0x9c], eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x102
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov edx, dword [ebp - 0x9c]
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401200
movzx edx, word [ebp - 0x76]
movzx eax, word [ebp - 0x78]
xor ecx, ecx
mov word [ebp - 0x58], cx
lea ecx, [ebp - 0x54]
mov word [ebp - 0x5a], dx
mov edx, 3
sub edx, esi
mov dword [ebp - 0x64], ebx
shl edx, 0x10
or eax, edx
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x6c]
sar edx, 3
mov word [ebp - 0x5c], dx
mov edx, dword [ebp - 0x88]
shr edx, 3
mov dword [ebp - 0x60], edx
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x10
mov dword [ebp - 0x9c], eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x109
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov edx, dword [ebp - 0x9c]
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
cmp edx, 0x80040205
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401200
mov eax, dword [ebp - 0x84]
movzx edx, word [ebp - 0x76]
mov dword [ebp - 0x68], edi
mov ecx, dword [ebp - 0xb0]
shr eax, 3
mov word [ebp - 0x5a], dx
mov dword [ebp - 0x60], eax
xor eax, eax
mov dword [ebp - 0x64], ecx
movzx ecx, word [ebp - 0x7c]
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x6c]
mov word [ebp - 0x5c], cx
lea ecx, [ebp - 0x54]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x10
mov dword [ebp - 0x9c], eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x10e
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov edx, dword [ebp - 0x9c]
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
cmp edx, 0x80040205
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401200
mov ecx, dword [ebp - 0x90]
xor eax, eax
mov dword [ebp - 0x68], edi
movzx edx, word [ebp - 0xb6]
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x6c]
shr ecx, 3
mov dword [ebp - 0x64], ebx
mov word [ebp - 0x5a], dx
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x54]
sar edx, 3
mov word [ebp - 0x5c], dx
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x10
mov dword [ebp - 0x9c], eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x113
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov edx, dword [ebp - 0x9c]
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
cmp edx, 0x80040205
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401200
xor eax, eax
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x68], edi
movzx edx, word [ebp - 0x76]
movzx edi, word [ebp - 0x7c]
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x60], ecx
mov word [ebp - 0x5c], di
lea edi, [ebp - 0x54]
mov word [ebp - 0x5a], dx
mov dword [ebp - 0x64], ebx
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x10
mov edi, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x118
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x74]
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp + 0x14], ecx
mov dword [esp], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov edi, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x11c
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x74]
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp + 0x14], ecx
mov dword [esp], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x10
mov edi, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x120
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x74]
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp + 0x14], ecx
mov dword [esp], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
call fcn.00401200
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov edi, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x124
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x74]
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.Got_hr__lx_for__lu_Hz___u_channels__format__x__depth__u._n
call fcn.00401200
mov eax, dword [ebp - 0x70]
mov edi, dword [ebp - 0xa4]
add dword [ebp - 0x98], eax
add dword [ebp - 0x94], edi
sub dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xb4]
sub dword [ebp - 0x88], edi
mov edi, dword [ebp - 0xac]
add dword [ebp - 0x80], eax
mov eax, dword [ebp - 0xa8]
add dword [ebp - 0x84], edi
add dword [ebp - 0x90], eax
cmp esi, 1
jne 0x402b68
mov esi, 2
jmp 0x40268d
mov esi, dword [ebp - 0xc4]
add esi, 1
cmp esi, 3
je 0x402bd0
movzx eax, word [esi*4 + 0x4096b6]
mov word [ebp - 0x76], ax
mov eax, dword [ebp - 0xbc]
cmp dword [eax], 0x87fc0268
jne 0x4025e5
cmp dword [eax + 4], 0x43609a55
jne 0x4025e5
cmp dword [eax + 8], 0x4a00aa95
jne 0x4025e5
cmp dword [eax + 0xc], 0x6ce29d1d
jne 0x4025e5
cmp word [ebp - 0x76], 8
jne 0x4025e5
jmp 0x402b6e
add dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0xc0]
cmp eax, 6
jne 0x4025c8
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov ebx, eax
call fcn.004046a0
mov dword [eax], 0x4090f6
mov dword [eax + 4], 0x12b
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Got_outstanding_refcount__ld._n
mov dword [esp], eax
call fcn.00401200
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret