Function at 0x4c43e0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x515fa6
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x54f040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x34], ebx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], eax
xor esi, esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
xor edi, edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x3c], edi
mov byte [ebp - 4], 3
mov dword [ebp - 0x2c], eax
call fcn.00402df0
mov ecx, eax
test ecx, ecx
je 0x4c62c5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
xor eax, eax
mov byte [ebp - 4], 5
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
cmp edi, 0x14
jne 0x4c45a2
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c447e
mov edi, eax
mov dword [ebp - 0x28], edi
mov byte [ebp - 4], 6
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov dword [ebp - 0x3c], edi
mov byte [ebp - 4], 5
push ecx
mov ecx, esp
push 0x528ec4
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x4c44a1
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov byte [ebp - 4], 9
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
cmp ecx, edx
je 0x4c44d0
mov dword [ebp + 8], edx
mov dword [eax], 0
test ecx, ecx
je 0x4c44d0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4c44e1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x16
mov dword [ebp - 0x58], 0x14
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xb
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0xb
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [ebp - 0x38], 1
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0x6d
test eax, eax
je 0x4c4548
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
test al, al
je 0x4c5287
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x34], edi
mov eax, 0x22
mov byte [ebp - 4], 0x6e
mov edx, 0x528e14
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x30], eax
call fcn.00414520
test al, al
je 0x4c528a
mov byte [ebp - 0x11], 1
jmp 0x4c528e
cmp edi, 0x15
je 0x4c46b0
cmp edi, 8
jl 0x4c45b9
cmp edi, 0xd
jle 0x4c46b0
push ecx
mov ecx, esp
push str.func
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x4c45dc
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov byte [ebp - 4], 0x1b
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
cmp ecx, edx
je 0x4c460b
mov dword [ebp + 8], edx
mov dword [eax], 0
test ecx, ecx
je 0x4c460b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4c461c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x16
mov dword [ebp - 0x58], edi
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x1d
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0x1d
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov word [ebp - 0x60], ax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x1f
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push 0x528c08
call fcn.00413940
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0x1f
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x4c4874
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00414b20
lea eax, [ebp - 0x30]
push eax
call fcn.004b7c60
mov byte [ebp - 4], 0xd
push 0x528ec8
push dword [ebp - 0x30]
call fcn.0044e7c8
add esp, 8
test eax, eax
je 0x4c4763
push 0x528ed0
push dword [ebp - 0x30]
call fcn.0044e7c8
add esp, 8
test eax, eax
je 0x4c4763
push 0x528edc
push dword [ebp - 0x30]
call fcn.0044e7c8
add esp, 8
test eax, eax
je 0x4c4763
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add eax, 0x10
add esp, 4
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0x15
mov ecx, dword [ebx + 0x19c]
push eax
push str.Invalid_parameter_at__s
push dword [ecx + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x30]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov dword [ebp - 4], 0x19
jmp 0x4c6162
push ecx
mov ecx, esp
push 0x528ee4
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0xe
test eax, eax
je 0x4c4786
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xd
push eax
mov ecx, ebx
call fcn.004c7fd0
mov byte [ebp - 4], 0xf
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
cmp ecx, edx
je 0x4c47b5
mov dword [ebp + 8], edx
mov dword [eax], 0
test ecx, ecx
je 0x4c47b5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c47c6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x16
mov dword [ebp - 0x58], edi
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x11
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0x11
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov word [ebp - 0x60], ax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x13
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push 0x528c08
call fcn.00413940
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0x13
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [ebp - 4], 5
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c4874
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp edi, 7
jne 0x4c4532
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0x21
test eax, eax
je 0x4c4893
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
test al, al
je 0x4c48e2
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp + 0xc], edi
mov eax, 0x41
mov byte [ebp - 4], 0x22
mov edx, 0x528f28
mov dword [ebp - 0x18], eax
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x30], eax
call fcn.00414520
test al, al
je 0x4c48e5
mov byte [ebp + 0xf], 1
jmp 0x4c48e9
mov edi, dword [ebp + 0xc]
mov byte [ebp + 0xf], 0
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x18]
test al, 1
je 0x4c4915
and eax, 0xfffffffe
add edi, 0xfffffff0
mov dword [ebp - 0x18], eax
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4c4915
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp + 0xf], 0
je 0x4c5212
push ecx
mov ecx, esp
push 0x528f2c
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0x23
test eax, eax
je 0x4c4942
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp + 0xc]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov ecx, dword [eax]
test ecx, ecx
je 0x4c4962
mov esi, ecx
mov dword [eax], 0
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x25
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4c4973
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x26
test esi, esi
je 0x4c4986
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x27
test esi, esi
je 0x4c49a4
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c6330
test al, al
jne 0x4c4a41
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp + 0xc], edi
mov byte [ebp - 4], 0x28
mov eax, dword [ebx + 0x19c]
push edi
push 0x528f30
push dword [eax + 8]
push ebx
call fcn.004c8a50
or ebx, 0xffffffff
mov byte [ebp - 4], 5
add esp, 0x10
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4c4a0b
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4c4a27
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2b
test esi, esi
je 0x4c4a35
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x2c
jmp 0x4c6162
test esi, esi
je 0x4c62cf
mov eax, dword [esi]
lea ecx, [ebp + 0xc]
push ecx
push esi
mov dword [ebp + 0xc], 0
call dword [eax + 0x34]
test eax, eax
jns 0x4c4a6a
push 0x528be8
push esi
push eax
call fcn.00444e80
mov eax, dword [ebp + 0xc]
or dword [ebp - 0x18], 0x200
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
mov byte [ebp - 4], 0x2e
push eax
lea ecx, [ebp - 0x40]
call fcn.00414a30
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c4a97
mov edi, eax
xor eax, eax
mov dword [ebp - 0x20], edi
jmp 0x4c4a9a
mov edi, dword [ebp - 0x20]
mov byte [ebp - 4], 0x30
test eax, eax
je 0x4c4aa8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4c4ab9
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push ecx
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
mov ecx, esp
push eax
call fcn.00414b20
lea eax, [ebp + 0x10]
push eax
call fcn.004b7c60
mov ecx, str.desc
mov eax, dword [eax]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c4b0b
test dx, dx
je 0x4c4b02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c4b0b
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c4ae0
mov dword [ebp + 0xc], 0
jmp 0x4c4b13
sbb ecx, ecx
or ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0x10]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c4b2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 0xc], 0
jne 0x4c4bc0
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0x32
test edi, edi
je 0x4c62cf
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
mov ecx, edi
call fcn.00413d10
mov ecx, eax
mov byte [ebp - 4], 0x33
call fcn.00413b40
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0x528c08
call fcn.00413940
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x34
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.00413d10
mov ecx, eax
mov byte [ebp - 4], 0x35
call fcn.00413b40
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
nop dword [eax + eax]
mov eax, dword [ebx + 0x19c]
mov ecx, dword [eax]
sub ecx, 0x10
push ecx
cmp eax, dword [ebx + 0x194]
je 0x4c51b4
call fcn.00403870
or dword [ebp - 0x18], 4
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x44], edi
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x36
mov ecx, dword [eax]
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x4c4c05
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x4c4c1b
call fcn.00402df0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x4c62d9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 0xc], eax
push 0x528f70
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x37
call fcn.00403590
test al, al
jne 0x4c4c48
push 0x528f70
lea ecx, [ebp + 0xc]
call fcn.00403650
mov byte [ebp - 4], 0x36
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4c62e3
mov ecx, eax
nop dword [eax]
mov dx, word [edi]
cmp dx, word [ecx]
jne 0x4c4c86
test dx, dx
je 0x4c4c82
mov dx, word [edi + 2]
cmp dx, word [ecx + 2]
jne 0x4c4c86
add edi, 4
add ecx, 4
test dx, dx
jne 0x4c4c60
xor edi, edi
jmp 0x4c4c8b
sbb edi, edi
or edi, 1
lea edx, [eax - 0x10]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c4ca3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
or eax, 0xffffffff
mov edx, dword [ebp - 0x40]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c4cbf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
jne 0x4c507d
push ecx
mov edi, esp
mov dword [ebp + 0xc], esp
mov dword [ebp - 0x28], edi
call fcn.00402df0
mov ecx, eax
test ecx, ecx
je 0x4c62ed
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
push 0x527392
mov ecx, edi
mov byte [ebp - 4], 0x38
call fcn.00403590
test al, al
jne 0x4c4d09
push 0x527392
mov ecx, edi
call fcn.00403650
push ecx
mov byte [ebp - 4], 0x39
mov edi, esp
mov dword [ebp - 0x48], edi
call fcn.00402df0
mov ecx, eax
test ecx, ecx
je 0x4c62f7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
push 0x528f74
mov ecx, edi
mov byte [ebp - 4], 0x3a
call fcn.00403590
test al, al
jne 0x4c4d4c
push 0x528f74
mov ecx, edi
call fcn.00403650
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x3b
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x39
push eax
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c7d90
mov byte [ebp - 4], 0x3c
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4c4d7f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x3d
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x3e
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c6330
test al, al
jne 0x4c4e24
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add eax, 0x10
add esp, 4
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebx + 0x19c]
push eax
push 0x528f30
push dword [ecx + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0x41
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c4e0e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x42
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x43
jmp 0x4c6162
mov eax, dword [esi]
lea ecx, [ebp + 0xc]
push ecx
push esi
mov dword [ebp + 0xc], 0
call dword [eax + 0x34]
test eax, eax
jns 0x4c4e45
push 0x528be8
push esi
push eax
call fcn.00444e80
mov ebx, dword [ebp + 0xc]
or dword [ebp - 0x18], 8
mov dword [ebp - 0x44], ebx
xor edi, edi
mov byte [ebp - 4], 0x46
test ebx, ebx
je 0x4c4e5f
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov byte [ebp - 4], 0x47
test ebx, ebx
je 0x4c4e89
lea ecx, [ebp + 0x10]
mov dword [ebp + 0x10], 0
mov eax, dword [ebx]
push ecx
push 0x528bc8
push ebx
call dword [eax]
xor edi, edi
mov dword [ebp - 0x38], eax
test eax, eax
cmovns edi, dword [ebp + 0x10]
jmp 0x4c4e90
mov dword [ebp - 0x38], 0x80004002
mov byte [ebp - 4], 0x4c
test ebx, ebx
je 0x4c4e9e
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x45
mov eax, dword [ebp - 0x38]
test eax, eax
jns 0x4c4eb4
cmp eax, 0x80004002
jne 0x4c6301
mov byte [ebp - 4], 0x4d
mov eax, dword [ebp - 0x20]
cmp eax, edi
je 0x4c4ed0
mov ecx, eax
mov dword [ebp - 0x20], edi
xor edi, edi
test ecx, ecx
je 0x4c4ed0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x4e
test edi, edi
je 0x4c4ede
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 0x4f
test ebx, ebx
je 0x4c4eec
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 5
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x34]
test edi, edi
je 0x4c4bc0
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
push eax
call fcn.00414b20
lea eax, [ebp - 0x2c]
push eax
call fcn.004b7c60
mov ecx, str.desc
mov eax, dword [eax]
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c4f46
test dx, dx
je 0x4c4f42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c4f46
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c4f20
xor ebx, ebx
jmp 0x4c4f4b
sbb ebx, ebx
or ebx, 1
mov edx, dword [ebp - 0x2c]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c4f66
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test ebx, ebx
mov ebx, dword [ebp - 0x34]
jne 0x4c4bc0
push ecx
mov dword [ebp + 0xc], esp
mov dword [ebp + 0xc], esp
push 0xc
call fcn.00443e65
mov ebx, eax
add esp, 4
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 0x50
test ebx, ebx
je 0x4c4fb4
push 0x528da0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx], eax
test eax, eax
je 0x4c6307
jmp 0x4c4fb6
xor ebx, ebx
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
test ebx, ebx
je 0x4c6311
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x51
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.00413d10
mov ecx, eax
mov byte [ebp - 4], 0x52
call fcn.00413b40
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ecx
mov dword [ebp + 0xc], esp
mov dword [ebp + 0xc], esp
push 0xc
call fcn.00443e65
mov ebx, eax
add esp, 4
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 0x53
test ebx, ebx
je 0x4c5036
push 0x528c08
mov dword [ebx + 4], 0
mov dword [ebx + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx], eax
test eax, eax
je 0x4c631b
jmp 0x4c5038
xor ebx, ebx
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
test ebx, ebx
je 0x4c6325
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x54
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.00413d10
mov ecx, eax
mov byte [ebp - 4], 0x55
call fcn.00413b40
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ebx, dword [ebp - 0x34]
jmp 0x4c4bc0
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add eax, 0x10
add esp, 4
mov dword [ebp + 0x10], eax
mov edx, 0x528f78
mov byte [ebp - 4], 0x56
lea ecx, [ebp + 0x10]
call fcn.00414520
lea ecx, [ebp + 0x10]
mov byte [ebp + 0xf], al
mov byte [ebp - 4], 5
call fcn.00401b10
cmp byte [ebp + 0xf], 0
je 0x4c5151
mov eax, 0x16
mov dword [ebp - 0x58], 0
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x57
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.args
call fcn.00413940
mov byte [ebp - 4], 0x58
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0x57
call fcn.00413e00
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004144c0
mov ecx, ebx
call fcn.004c8480
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0x5a
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c513b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x5b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x5c
jmp 0x4c62a2
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp + 0xc]
push eax
call fcn.00413fa0
mov byte [ebp - 4], 0x5d
push dword [eax]
mov ecx, dword [ebx + 0x19c]
push 0x528f7c
push dword [ecx + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0x5f
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c519e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x60
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x61
jmp 0x4c6162
call fcn.00403870
add eax, 0x10
add esp, 4
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0x68
mov ecx, dword [ebx + 0x19c]
push eax
push str.Expected___at__s
push dword [ecx + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0x6a
test edi, edi
je 0x4c51fc
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 0x6b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x6c
jmp 0x4c6162
mov eax, 0x16
mov dword [ebp - 0x58], 0
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x62
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.args
call fcn.00413940
mov byte [ebp - 4], 0x63
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0x62
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c527b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0x67
jmp 0x4c62a2
mov edi, dword [ebp - 0x34]
mov byte [ebp - 0x11], 0
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x18]
test al, 2
je 0x4c52ba
and eax, 0xfffffffd
add edi, 0xfffffff0
mov dword [ebp - 0x18], eax
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4c52ba
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x11], 0
push ecx
mov ecx, esp
je 0x4c6185
cmp dword [ebp + 0xc], 0x14
jne 0x4c5313
push 0x528fe4
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0x6f
test eax, eax
je 0x4c52ed
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov ecx, dword [eax]
test ecx, ecx
je 0x4c530d
mov esi, ecx
mov dword [eax], 0
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x71
jmp 0x4c5357
push 0x528fec
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0x72
test eax, eax
je 0x4c5333
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov ecx, dword [eax]
test ecx, ecx
je 0x4c5353
mov esi, ecx
mov dword [eax], 0
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x74
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c5364
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x75
test esi, esi
je 0x4c5377
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
mov eax, dword [ebp + 0x10]
cmp eax, 0x21
jne 0x4c560d
push ecx
mov edi, esp
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x50], edi
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
or dword [ebp - 0x18], 0x80
lea ecx, [ebx + 0x18]
add esp, 4
add eax, 0x10
mov dword [edi], eax
call fcn.00413840
mov dword [ebp - 0x30], eax
test eax, eax
js 0x4c5572
mov edi, esi
mov eax, esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 0x76
test eax, eax
je 0x4c53e6
mov eax, dword [esi]
push esi
call dword [eax + 4]
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x77
push str.func
call fcn.00403420
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x78
cmp dword [ebp - 0x34], 0
je 0x4c540c
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x77
push eax
mov ecx, ebx
call fcn.004c7fd0
mov byte [ebp - 4], 0x79
mov ecx, dword [eax]
cmp esi, ecx
je 0x4c543d
mov esi, ecx
mov dword [eax], 0
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x24], esi
test ecx, ecx
je 0x4c543d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x7a
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c544e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x16
mov dword [ebp - 0x58], 0x17
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x7b
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0x7c
test esi, esi
je 0x4c62cf
mov ecx, esi
mov byte [ebp - 4], 0x7b
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov word [ebp - 0x60], ax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x7d
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x528c08
call fcn.00413940
mov byte [ebp - 4], 0x7e
mov ecx, esi
mov byte [ebp - 4], 0x7d
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov dword [ebp - 0x58], 0
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x7f
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push str.args
call fcn.00413940
mov byte [ebp - 4], 0x80
mov ecx, esi
mov byte [ebp - 4], 0x7f
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, esi
mov dword [ebp - 0x40], ecx
cmp ecx, dword [ebp - 0x34]
je 0x4c554b
mov byte [ebp - 4], 0x81
test edi, edi
je 0x4c5532
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, esi
mov esi, edi
mov eax, ecx
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x82
mov ecx, edi
test eax, eax
je 0x4c554b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, edi
push ecx
mov eax, esp
mov dword [eax], ecx
mov byte [ebp - 4], 0x83
test ecx, ecx
je 0x4c555e
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 0x77
call fcn.004c8480
mov byte [ebp - 4], 0x84
jmp 0x4c5b01
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp + 0xc], edi
mov byte [ebp - 4], 0x85
mov eax, dword [ebx + 0x19c]
push edi
push 0x528ff0
push dword [eax + 8]
push ebx
call fcn.004c8a50
or ebx, 0xffffffff
mov byte [ebp - 4], 5
add esp, 0x10
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4c55c6
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4c55e2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x86
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c55f3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x88
test esi, esi
je 0x4c5601
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x89
jmp 0x4c6162
cmp eax, 0x22
je 0x4c56ac
cmp eax, 0x23
je 0x4c56ac
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0xba
test esi, esi
je 0x4c5632
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c7290
test al, al
jne 0x4c5b0f
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp + 0xc]
push eax
call fcn.00413fa0
mov byte [ebp - 4], 0xbb
push dword [eax]
mov ecx, dword [ebx + 0x19c]
push str.Invalid_expression_at__s
push dword [ecx + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xbc
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c5692
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xbe
test esi, esi
je 0x4c56a0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xbf
jmp 0x4c6162
mov eax, dword [ebx + 0x19c]
mov dword [ebp - 0x2c], 1
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
or dword [ebp - 0x18], 0x400
add eax, 0x10
add esp, 4
mov dword [ebp - 0x40], eax
push ecx
mov byte [ebp - 4], 0x8a
lea edi, [eax - 0x10]
mov dword [ebp - 0x34], esp
push edi
call fcn.00403870
mov ecx, dword [ebp - 0x34]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
lea ecx, [ebx + 0x148]
call fcn.00412f80
mov dword [ebp - 0x34], eax
or ecx, 0xffffffff
mov byte [ebp - 4], 5
lock xadd dword [edi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4c571a
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x34]
test eax, eax
js 0x4c60f6
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x8b
test esi, esi
je 0x4c5733
mov eax, dword [esi]
push esi
call dword [eax + 4]
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x8c
push str.func
call fcn.00403420
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0x8d
test esi, esi
je 0x4c5757
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x8c
push eax
mov ecx, ebx
call fcn.004c7fd0
push eax
lea ecx, [ebp - 0x24]
call fcn.00414460
mov byte [ebp - 4], 0x8e
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c5780
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x16
mov dword [ebp - 0x58], 0x19
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x8f
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0x90
mov edi, dword [ebp - 0x24]
test edi, edi
je 0x4c62cf
mov ecx, edi
mov byte [ebp - 4], 0x8f
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov word [ebp - 0x60], ax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x91
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x528c08
call fcn.00413940
mov byte [ebp - 4], 0x92
mov ecx, edi
mov byte [ebp - 4], 0x91
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov dword [ebp - 0x58], 0
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x93
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push str.args
call fcn.00413940
mov byte [ebp - 4], 0x94
mov ecx, edi
mov byte [ebp - 4], 0x93
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, edi
mov dword [ebp - 0x40], ecx
cmp ecx, esi
je 0x4c587f
mov byte [ebp - 4], 0x95
test esi, esi
je 0x4c5866
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, edi
mov edi, esi
mov eax, ecx
mov dword [ebp - 0x24], edi
mov byte [ebp - 4], 0x96
mov ecx, esi
test eax, eax
je 0x4c587f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, esi
push ecx
mov eax, esp
mov dword [eax], ecx
mov byte [ebp - 4], 0x97
test ecx, ecx
je 0x4c5892
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 0x8c
call fcn.004c8480
mov byte [ebp - 4], 0x98
test esi, esi
je 0x4c58ab
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 5
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
or dword [ebp - 0x18], 0x1000
add eax, 0x10
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [eax - 0xc], 1
jne 0x4c608a
cmp word [eax], 0x2c
jne 0x4c608a
lea ecx, [ebp - 0x34]
call fcn.00401b10
push ecx
mov ecx, esp
mov dword [ebp - 0x50], esp
push 0x527392
call fcn.00403420
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x9e
push 0x528f74
call fcn.00403420
push ecx
mov eax, esp
mov dword [eax], edi
mov byte [ebp - 4], 0x9f
test edi, edi
je 0x4c5920
mov eax, dword [edi]
push edi
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x9e
push eax
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c7d90
mov byte [ebp - 4], 0xa0
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c5944
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ecx
mov eax, esp
mov dword [eax], edi
mov byte [ebp - 4], 0xa1
test edi, edi
je 0x4c5957
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
push ecx
mov ecx, dword [ebx + 0x19c]
push esp
call fcn.00413fa0
lea ecx, [ebx + 0x18]
call fcn.00413840
mov dword [ebp - 0x34], eax
test eax, eax
js 0x4c6023
mov dword [ebp - 0x50], edi
mov byte [ebp - 4], 0xa7
test edi, edi
je 0x4c5993
mov eax, dword [edi]
push edi
call dword [eax + 4]
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xa8
push str.func
call fcn.00403420
push ecx
mov eax, esp
mov dword [eax], edi
mov byte [ebp - 4], 0xa9
test edi, edi
je 0x4c59b7
mov eax, dword [edi]
push edi
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xa8
push eax
mov ecx, ebx
call fcn.004c7fd0
push eax
lea ecx, [ebp - 0x24]
call fcn.00414460
mov byte [ebp - 4], 0xaa
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4c59e0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x16
mov dword [ebp - 0x58], 0x17
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xab
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x528da0
call fcn.00413940
mov byte [ebp - 4], 0xac
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x4c62cf
mov ecx, esi
mov byte [ebp - 4], 0xab
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov word [ebp - 0x60], ax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xad
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x528c08
call fcn.00413940
mov byte [ebp - 4], 0xae
mov ecx, esi
mov byte [ebp - 4], 0xad
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x16
mov dword [ebp - 0x58], 0
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xaf
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4c], esp
push str.args
call fcn.00413940
mov byte [ebp - 4], 0xb0
mov ecx, esi
mov byte [ebp - 4], 0xaf
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, esi
mov dword [ebp - 0x40], ecx
cmp ecx, edi
je 0x4c5adf
mov byte [ebp - 4], 0xb1
test edi, edi
je 0x4c5ac6
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, esi
mov esi, edi
mov eax, ecx
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0xb2
mov ecx, edi
test eax, eax
je 0x4c5adf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, edi
push ecx
mov eax, esp
mov dword [eax], ecx
mov byte [ebp - 4], 0xb3
test ecx, ecx
je 0x4c5af2
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 0xa8
call fcn.004c8480
mov byte [ebp - 4], 0xb4
test edi, edi
je 0x4c5b0b
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 5
inc dword [ebp - 0x2c]
mov ecx, dword [ebx + 0x19c]
cmp ecx, dword [ebx + 0x194]
je 0x4c5fa8
mov eax, dword [ecx]
sub eax, 0x10
push eax
call fcn.00403870
or dword [ebp - 0x18], 0x10
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x40], edi
mov edx, 0x528f70
mov byte [ebp - 4], 0xc0
lea ecx, [ebp - 0x40]
call fcn.00414520
mov byte [ebp - 0x11], al
lea edx, [edi - 0x10]
mov byte [ebp - 4], 5
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4c5b6f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0x11]
test al, al
je 0x4c5d7a
inc dword [ebp - 0x2c]
cmp dword [ebp + 0xc], 0x14
jne 0x4c5c66
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 2
jne 0x4c5bef
push ecx
mov ecx, esp
push 0x5290a8
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0xc1
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c5bb6
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov byte [ebp - 4], 0xc2
mov edx, dword [eax]
cmp esi, edx
je 0x4c5be6
mov ecx, esi
mov dword [eax], 0
mov esi, edx
mov dword [ebp - 0x24], esi
test ecx, ecx
je 0x4c5be6
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xc3
mov eax, dword [ebp - 0x34]
jmp 0x4c5c51
cmp eax, 3
jne 0x4c5c5b
push ecx
mov ecx, esp
push 0x5290b0
call fcn.00403420
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov byte [ebp - 4], 0xc4
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c5c1a
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.004c7fd0
mov byte [ebp - 4], 0xc5
mov edx, dword [eax]
cmp esi, edx
je 0x4c5c4a
mov ecx, esi
mov dword [eax], 0
mov esi, edx
mov dword [ebp - 0x24], esi
test ecx, ecx
je 0x4c5c4a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xc6
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4c5c5b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0xc7
jmp 0x4c5cc7
push ecx
mov ecx, esp
mov dword [ebp - 0x50], esp
push 0x527392
call fcn.00403420
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xc8
push 0x528f74
call fcn.00403420
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0xc9
test esi, esi
je 0x4c5c9a
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xc8
push eax
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c7d90
mov byte [ebp - 4], 0xca
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4c5cbe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0xcb
test esi, esi
je 0x4c5cd1
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
push ecx
mov eax, esp
mov dword [eax], esi
mov byte [ebp - 4], 0xcc
test esi, esi
je 0x4c5cef
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c7290
test al, al
jne 0x4c5b12
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp + 0xc]
push eax
call fcn.00413fa0
mov byte [ebp - 4], 0xcd
push dword [eax]
mov ecx, dword [ebx + 0x19c]
push str.Invalid_expression_at__s
push dword [ecx + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xce
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c5d4f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xcf
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c5d60
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xd0
test esi, esi
je 0x4c5d6e
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xd1
jmp 0x4c6162
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp - 0x44]
push eax
call fcn.00413fa0
mov edx, 0x528e20
mov byte [ebp - 4], 0xd2
mov ecx, eax
call fcn.00414520
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x11], al
mov byte [ebp - 4], 5
call fcn.00401b10
cmp byte [ebp - 0x11], 0
je 0x4c5f30
mov edi, dword [ebp + 0xc]
cmp edi, 2
jne 0x4c5eb5
mov eax, dword [ebp + 0x10]
cmp eax, 0x21
jne 0x4c5e6e
mov eax, 0x16
mov dword [ebp - 0x58], 1
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xd3
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.args
call fcn.00413940
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xd4
call fcn.00414440
mov byte [ebp - 4], 0xd3
mov ecx, eax
call fcn.00413e00
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004144c0
mov ecx, ebx
call fcn.004c8480
mov edi, dword [ebp - 0x28]
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xda
test edi, edi
je 0x4c5e43
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 0xdb
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c5e54
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xdc
test esi, esi
je 0x4c5e62
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xdd
jmp 0x4c62a2
cmp eax, 0x22
je 0x4c5e78
cmp eax, 0x23
jne 0x4c5eb5
mov eax, 0x16
mov dword [ebp - 0x58], 2
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xd5
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.args
call fcn.00413940
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xd6
call fcn.00414440
mov byte [ebp - 4], 0xd5
jmp 0x4c5e02
mov eax, 0x16
mov word [ebp - 0x60], ax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xd7
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.args
call fcn.00413940
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xd8
call fcn.00414440
mov ecx, eax
mov byte [ebp - 4], 0xd7
call fcn.00413e00
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp edi, 0x14
jne 0x4c5e17
mov edi, dword [ebp - 0x28]
push ecx
mov eax, esp
mov dword [eax], edi
mov byte [ebp - 4], 0xd9
test edi, edi
je 0x4c5f20
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004c8480
jmp 0x4c5e2d
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp + 0xc]
push eax
call fcn.00413fa0
mov byte [ebp - 4], 0xde
push dword [eax]
mov eax, dword [ebx + 0x19c]
push str.Invalid_expression_at__s
push dword [eax + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xdf
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c5f7d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xe0
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c5f8e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xe1
test esi, esi
je 0x4c5f9c
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xe2
jmp 0x4c6162
lea eax, [ebp + 0xc]
add ecx, 0xfffffff4
push eax
mov dword [ebx + 0x19c], ecx
call fcn.00413fa0
mov byte [ebp - 4], 0xe3
push dword [eax]
mov eax, dword [ebx + 0x19c]
push str.Unexpected_end_of_input_after__s
push dword [eax + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xe4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c5ff8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xe5
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c6009
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xe6
test esi, esi
je 0x4c6017
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xe7
jmp 0x4c6162
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp + 0xc]
push eax
call fcn.00413fa0
mov byte [ebp - 4], 0xb5
push dword [eax]
mov eax, dword [ebx + 0x19c]
push 0x528ff0
push dword [eax + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xb6
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c6070
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xb8
test edi, edi
je 0x4c607e
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov dword [ebp - 4], 0xb9
jmp 0x4c6162
lea ecx, [ebp - 0x34]
call fcn.00401b10
mov ecx, dword [ebx + 0x19c]
lea eax, [ebp + 0xc]
push eax
call fcn.00413fa0
mov byte [ebp - 4], 0xa2
push dword [eax]
mov eax, dword [ebx + 0x19c]
push str.Expecting___at__s
push dword [eax + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0xa3
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c60df
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xa5
test edi, edi
je 0x4c60ed
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov dword [ebp - 4], 0xa6
jmp 0x4c6162
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403870
add eax, 0x10
add esp, 4
mov dword [ebp + 0xc], eax
push eax
mov byte [ebp - 4], 0x99
mov eax, dword [ebx + 0x19c]
push str.Invalid_depreciation_purpose__s
push dword [eax + 8]
push ebx
call fcn.004c8a50
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00401b10
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 0x9a
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c614d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x9c
test esi, esi
je 0x4c615b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0x9d
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c616f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp + 8]
push eax
call fcn.00414b20
lea eax, [ebp + 0xc]
push eax
call fcn.004b7c60
mov ecx, 0x528ed0
mov eax, dword [eax]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c61c6
test dx, dx
je 0x4c61c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c61c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c61a0
xor edi, edi
jmp 0x4c61cb
sbb edi, edi
or edi, 1
mov edx, dword [ebp + 0xc]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c61e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
jne 0x4c6230
mov eax, 0x16
mov dword [ebp - 0x58], edi
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xe8
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.args
call fcn.00413940
mov byte [ebp - 4], 0xe9
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c62cf
mov byte [ebp - 4], 0xe8
call fcn.00413e00
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [ebp - 4], 4
mov edi, dword [ebp - 0x28]
jmp 0x4c624f
mov byte [ebp - 4], 3
or ecx, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4c626e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xeb
test edi, edi
je 0x4c627c
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 0xec
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c628d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xed
test esi, esi
je 0x4c629b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xee
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c62af
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.00404320
push 0x80004003
call fcn.00444e60
push 0x80004005
call fcn.00404320
push 0x80004005
call fcn.00404320
push 0x80004005
call fcn.00404320
push 0x80004005
call fcn.00404320
push eax
call fcn.00444e60
push 0x8007000e
call fcn.00444e60
push 0x8007000e
call fcn.00444e60
push 0x8007000e
call fcn.00444e60
push 0x8007000e
call fcn.00444e60
int3