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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c7f02
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x62f570]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x190]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
cmp eax, ebx
je 0x469c95
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push 0x5f3b94
push eax
mov eax, dword [ecx]
call eax
xor eax, eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
cmp esi, ebx
je 0x469cba
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [esp + 0x44], eax
test byte [ebp + 0x10], 0xc
mov dword [esp + 0x20], 0xfffffffd
je 0x469cd8
lea ecx, [esp + 0x20]
mov dword [esp + 0x48], 1
mov dword [esp + 0x40], ecx
cmp eax, ebx
je 0x469e63
xor ecx, ecx
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0053a864
mov ebx, eax
mov eax, dword [esp + 0x48]
shl eax, 4
push eax
push 0
push ebx
mov dword [esp + 0x4c], ebx
call fcn.00589f50
mov ecx, dword [esp + 0x54]
shl ecx, 4
add esp, 0x10
cmp byte [esi], 0
lea edx, [ebx + ecx - 0x10]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
je 0x469e63
mov ecx, edx
lea esi, [edi - 4]
lea ebx, [ecx + 8]
add edi, 0xfffffff8
mov eax, dword [esp + 0x18]
movzx ax, byte [eax]
mov word [ecx], ax
test al, 0x40
je 0x469d52
and eax, 0xffbf
or eax, 0x4000
mov word [ecx], ax
movzx eax, word [ecx]
cmp eax, 0x4002
jg 0x469f78
je case.0x469f86.16387
sub eax, 2
cmp eax, 0x13
ja case.0x469f86.16398
jmp dword [eax*4 + 0x46a1ac]
mov dl, byte [esi + 4]
add edi, 4
add esi, 4
mov byte [ebx], dl
jmp case.0x469f86.16398
mov ax, word [esi + 4]
add edi, 4
add esi, 4
mov word [ebx], ax
jmp case.0x469f86.16398
mov eax, dword [edi + 8]
add edi, 8
mov dword [ebx], eax
mov edx, dword [edi + 4]
add esi, 8
mov dword [ebx + 4], edx
jmp case.0x469f86.16398
mov al, byte [esi + 4]
add edi, 4
add esi, 4
mov byte [ebx], al
jmp case.0x469f86.16398
mov dx, word [esi + 4]
add edi, 4
add esi, 4
mov word [ebx], dx
jmp case.0x469f86.16398
mov eax, dword [esi + 4]
add edi, 4
add esi, 4
mov dword [ebx], eax
jmp case.0x469f86.16398
mov edx, dword [edi + 8]
add edi, 8
mov dword [ebx], edx
mov eax, dword [edi + 4]
add esi, 8
mov dword [ebx + 4], eax
jmp case.0x469f86.16398
fld qword [edi + 8]
add edi, 8
fstp dword [ebx]
add esi, 8
jmp case.0x469f86.16398
fld qword [edi + 8]
add edi, 8
fstp qword [ebx]
add esi, 8
jmp case.0x469f86.16398
mov eax, dword [esi + 4]
mov edx, dword [eax]
add edi, 4
add esi, 4
mov dword [ebx], edx
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp case.0x469f86.16398
mov eax, dword [esi + 4]
add esi, 4
push eax
add edi, 4
mov dword [esp + 0x28], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp dword [esp + 0x24], 0
mov dword [ebx], eax
je 0x469e40
test eax, eax
je 0x469fbb
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
inc eax
sub ecx, 0x10
sub ebx, 0x10
cmp byte [eax], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jne 0x469d36
mov esi, dword [ebp + 0x1c]
lea eax, [esp + 0x2c]
push eax
xor ebx, ebx
call fcn.0054e535
cmp word [ebp + 0x14], bx
je 0x469e79
lea ebx, [esp + 0x2c]
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x50]
push edx
push ebx
xor eax, eax
lea edx, [esp + 0x48]
push edx
mov edx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0xc]
push 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
push 0x5d9054
mov dword [esp + 0x44], 0xffffffff
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov edi, eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x469f05
mov ecx, dword [esp + 0x3c]
shl eax, 4
cmp byte [esi], 0
lea ebx, [eax + ecx - 0x10]
je 0x469f05
jmp 0x469ef0
cmp byte [esi], 8
jne 0x469efc
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc esi
sub ebx, 0x10
cmp byte [esi], 0
jne 0x469ef0
mov edx, dword [esp + 0x3c]
push edx
call fcn.0053a86f
add esp, 4
mov dword [esp + 0x3c], 0
test edi, edi
jge 0x46a08b
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp edi, 0x80020009
je 0x469fc0
push edi
call fcn.0053b79b
mov edx, dword [esi + 4]
add esi, 4
add edi, 4
neg edx
sbb edx, edx
mov word [ebx], dx
jmp case.0x469f86.16398
mov eax, dword [esi + 4]
mov edx, dword [eax]
add edi, 4
add esi, 4
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp case.0x469f86.16398
sub eax, 0x4003
cmp eax, 0x12
ja case.0x469f86.16398
jmp dword [eax*4 + 0x46a1fc]
mov edx, dword [esi + 4]
add edi, 4
add esi, 4
mov dword [ebx], edx
jmp case.0x469f86.16398
mov eax, dword [esi + 4]
mov edx, dword [eax]
add esi, 4
add edi, 4
neg edx
sbb edx, edx
and edx, 0xffff
mov dword [eax], edx
mov dword [ebx], eax
jmp case.0x469f86.16398
call fcn.0053c855
mov eax, dword [esp + 0x64]
test eax, eax
je 0x469fcf
lea ecx, [esp + 0x4c]
push ecx
call eax
push 0x20
call fcn.0053a82a
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x78], 1
test eax, eax
je 0x469ffa
mov edx, dword [esp + 0x4c]
push edx
push 0
push 0
mov ecx, eax
call fcn.00551f3c
mov esi, eax
jmp 0x469ffc
xor esi, esi
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x50]
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantInit]
push eax
call ebx
test eax, eax
je 0x46a01f
mov ecx, dword [esp + 0x50]
push ecx
lea ecx, [esi + 0x18]
call fcn.00406560
mov edx, dword [esp + 0x50]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edx
call edi
mov eax, dword [esp + 0x54]
push eax
call ebx
test eax, eax
je 0x46a044
mov ecx, dword [esp + 0x54]
push ecx
lea ecx, [esi + 0xc]
call fcn.00406560
mov edx, dword [esp + 0x54]
push edx
call edi
mov eax, dword [esp + 0x58]
push eax
call ebx
test eax, eax
je 0x46a063
mov ecx, dword [esp + 0x58]
push ecx
lea ecx, [esi + 0x14]
call fcn.00406560
mov edx, dword [esp + 0x58]
push edx
call edi
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x10], eax
mov ecx, dword [esp + 0x68]
push 0x614928
lea edx, [esp + 0x28]
push edx
mov dword [esi + 0x1c], ecx
mov dword [esp + 0x2c], esi
call fcn.00589f03
mov edi, dword [ebp + 0x14]
test di, di
je case.0x46a0d4.14
cmp di, 0xc
je 0x46a0c5
push edi
push 0
lea eax, [esp + 0x34]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov esi, eax
test esi, esi
jge 0x46a0c5
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.0053b79b
movzx eax, di
add eax, 0xfffffffe
cmp eax, 0x13
ja case.0x46a0d4.14
jmp dword [eax*4 + 0x46a248]
mov al, byte [esp + 0x34]
mov ecx, dword [ebp + 0x18]
mov byte [ecx], al
jmp case.0x46a0d4.14
mov dx, word [esp + 0x34]
mov eax, dword [ebp + 0x18]
mov word [eax], dx
jmp case.0x46a0d4.14
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
jmp case.0x46a0d4.14
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x46a0d4.14
fld dword [esp + 0x34]
mov eax, dword [ebp + 0x18]
fstp dword [eax]
jmp case.0x46a0d4.14
fld qword [esp + 0x34]
mov ecx, dword [ebp + 0x18]
fstp qword [ecx]
jmp case.0x46a0d4.14
fld qword [esp + 0x34]
mov edx, dword [ebp + 0x18]
fstp qword [edx]
jmp case.0x46a0d4.14
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp case.0x46a0d4.14
mov eax, dword [ebp + 0x18]
xor edx, edx
cmp word [esp + 0x34], dx
setne dl
mov dword [eax], edx
jmp case.0x46a0d4.14
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp case.0x46a0d4.14
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x34]
mov dword [ecx], eax
mov dword [esp + 0x78], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46a196
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18