Function at 0x406880
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x443d61
mov eax, dword fs:[0]
push eax
sub esp, 0x578
mov eax, dword [0x45d55c]
xor eax, esp
mov dword [esp + 0x570], eax
push ebx
push esi
push edi
mov eax, dword [0x45d55c]
xor eax, esp
push eax
lea eax, [esp + 0x588]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
call fcn.00401890
push str.VB6_
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x59c], 0
call fcn.00401770
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x594], 1
call fcn.004016b0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x590], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40693e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x406981
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x590], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40697a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x406ec3
push str.obj.cls
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.00401770
mov eax, dword [esp + 0x28]
push 0x44796c
push eax
mov byte [esp + 0x5a4], 2
call fcn.0042da56
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x406a01
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x590], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x590], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40696e
push str.VERSION_1.0_CLASS_r_n
push ebx
call fcn.0042d843
push str.BEGIN_r_n
push ebx
call fcn.0042d843
push str.__MultiUse___1__True_r_n
push ebx
call fcn.0042d843
push str.__Persistable__0__NotPersistable_r_n
push ebx
call fcn.0042d843
push str.__DataBindingBehavior__0__vbNone_r_n
push ebx
call fcn.0042d843
push str.__DataSourceBehavior___0__vbNone_r_n
push ebx
call fcn.0042d843
push str.__MTSTransactionMode___0__NotAnMTSObject_r_n
push ebx
call fcn.0042d843
push str.END_r_n
push ebx
call fcn.0042d843
add esp, 0x40
push edi
push str.Attribute_VB_Name____s__r_n
push ebx
call fcn.0042d843
push str.Attribute_VB_GlobalNameSpace__False_r_n
push ebx
call fcn.0042d843
push str.Attribute_VB_Creatable__True_r_n
push ebx
call fcn.0042d843
push str.Attribute_VB_PredeclaredId__False_r_n
push ebx
call fcn.0042d843
push str.Attribute_VB_Exposed__False_r_n
push ebx
call fcn.0042d843
push str.Private_obj_As_Object_r_n_r_n
push ebx
call fcn.0042d843
push str.Private_Sub_Class_Initialize___
push ebx
call fcn.0042d843
mov ecx, dword [esp + 0x54]
push ecx
push str.____Set_obj__CreateObject___s___r_n
push ebx
call fcn.0042d843
add esp, 0x48
push str.End_Sub_r_n_r_n
push ebx
call fcn.0042d843
push str.Private_Sub_Class_Terminate___
push ebx
call fcn.0042d843
push str.____Set_obj__Nothing_r_n
push ebx
call fcn.0042d843
push str.End_Sub_r_n_r_n
push ebx
call fcn.0042d843
add esp, 0x20
mov ecx, esi
mov dword [esp + 0x18], 0
call fcn.00401000
test eax, eax
jbe 0x406d8b
mov dword [esp + 0x14], 0
jmp 0x406b14
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 4]
test eax, eax
je 0x406b37
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x6572ec3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x406b3c
call fcn.0042d299
mov esi, dword [esi + 4]
add esi, dword [esp + 0x14]
lea edx, [esp + 0x2c]
mov ecx, 0x143
lea edi, [esp + 0x2c]
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.00406840
add esp, 4
test eax, eax
je 0x406d63
xor eax, eax
jmp 0x406b70
mov cl, byte [esp + eax + 0x6c]
mov byte [esp + eax + 0x53c], cl
add eax, 1
test cl, cl
jne 0x406b70
mov edi, str.Stop
lea esi, [esp + 0x53c]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x406bc1
mov ecx, dword [str.StopAudio]
mov edx, dword [0x4478a4]
mov ax, word [0x4478a8]
mov dword [esp + 0x53c], ecx
mov dword [esp + 0x540], edx
mov word [esp + 0x544], ax
lea ecx, [esp + 0x53c]
push ecx
push str.Public_Function__s_
push ebx
call fcn.0042d843
xor esi, esi
add esp, 0xc
cmp dword [esp + 0xac], esi
jle 0x406c89
lea edi, [esp + 0xb0]
lea ecx, [ecx]
cmp dword [esp + esi*4 + 0x4b0], 0x1a
push edi
je 0x406c02
push str.ByVal__s
jmp 0x406c07
push str.ByRef__s
push ebx
call fcn.0042d843
mov eax, dword [esp + esi*4 + 0x4bc]
add esp, 0xc
cmp eax, 3
jne 0x406c23
push str._As_Long
jmp 0x406c51
cmp eax, 4
jne 0x406c2f
push str._As_Single
jmp 0x406c51
cmp eax, 5
jne 0x406c3b
push str._As_Double
jmp 0x406c51
cmp eax, 8
jne 0x406c47
push str._As_String
jmp 0x406c51
cmp eax, 0x1a
jne 0x406c5a
push str._As_Variant
push ebx
call fcn.0042d843
add esp, 8
mov edx, dword [esp + 0xac]
add edx, 0xffffffff
cmp esi, edx
jge 0x406c76
push 0x447870
push ebx
call fcn.0042d843
add esp, 8
add esi, 1
add edi, 0x20
cmp esi, dword [esp + 0xac]
jl 0x406bf0
push str.__As
push ebx
call fcn.0042d843
mov eax, dword [esp + 0x538]
add esp, 8
cmp eax, 3
jne 0x406caa
push str.Long_r_n
jmp 0x406cd8
cmp eax, 8
jne 0x406cb6
push str.String_r_n
jmp 0x406cd8
cmp eax, 2
jne 0x406cc2
push str.Integer_r_n
jmp 0x406cd8
cmp eax, 4
jne 0x406cce
push str.Single_r_n
jmp 0x406cd8
cmp eax, 5
jne 0x406ce1
push str.Double_r_n
push ebx
call fcn.0042d843
add esp, 8
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x540]
push ecx
push str._____s__obj._s_
push ebx
call fcn.0042d843
xor esi, esi
add esp, 0x10
cmp dword [esp + 0xac], esi
jle 0x406d4a
lea edi, [esp + 0xb0]
mov edi, edi
push edi
push 0x447854
push ebx
call fcn.0042d843
mov edx, dword [esp + 0xb8]
add edx, 0xffffffff
add esp, 0xc
cmp esi, edx
jge 0x406d3b
push 0x447870
push ebx
call fcn.0042d843
add esp, 8
add esi, 1
add edi, 0x20
cmp esi, dword [esp + 0xac]
jl 0x406d10
push 0x44786c
push ebx
call fcn.0042d843
push str.End_Function_r_n_r_n
push ebx
call fcn.0042d843
add esp, 0x10
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x14], 0x50c
add esi, 1
mov dword [esp + 0x18], esi
call fcn.00401000
cmp esi, eax
jb 0x406b10
mov edi, dword [esp + 0x28]
push ebx
call fcn.0042d7c7
push 0x447828
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00401770
mov edx, dword [esp + 0x30]
push 0x44796c
push edx
call fcn.0042da56
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x406de6
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4069b5
push 0x44af18
push esi
call fcn.0042d843
push 0x44aeb8
push esi
call fcn.0042d843
push 0x447a50
push esi
call fcn.0042d843
push 0x447a20
push esi
call fcn.0042d843
push edi
push str.set_dm__new__s_
push esi
call fcn.0042d843
push str.MsgBox_dm.Ver___r_n
push esi
call fcn.0042d843
push str.set_dm__nothing_
push esi
call fcn.0042d843
push str._r_n_r_n_r_n
push esi
call fcn.0042d843
add esp, 0x44
push esi
call fcn.0042d7c7
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406e6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x590], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406e93
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x590], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406ebe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x588]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x570]
xor ecx, esp
call fcn.0042d746
mov esp, ebp
pop ebp
ret