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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x54], edx
xor ecx, ecx
mov dword [esp + 0x68], edi
push ecx
push ecx
mov ebx, dword [edi + 8]
push ecx
mov byte [esp + 0x1f], cl
mov byte [esp + 0x5c], cl
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov ecx, ebx
push 0xf
pop edx
mov dword [esp + 0x40], ebx
call fcn.00428b9f
mov ebx, dword [esp + 0x60]
add esp, 0xc
mov edx, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x74], eax
and dword [esp + 0x14], 0
mov eax, dword [ebx]
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [eax + 4]
movzx eax, byte [edx + 0x3c]
mov edx, dword [ebx + 0x18]
imul esi, eax, 0x48
lea eax, [ecx + 8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
add eax, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x58], eax
mov eax, dword [esi + ecx + 0x18]
mov dword [esp + 0x38], eax
imul eax, dword [ebx + 0xc], 0x30
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 0x50]
mov dword [esp + 0x2c], ebx
cmp edx, dword [esp + 0x40]
jae 0x46be2b
mov esi, dword [esp + 0x64]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x18], esi
test byte [edx + 0xa], 2
jne 0x46bd35
mov esi, dword [edx]
mov edx, ecx
movzx eax, byte [eax + 0x3c]
mov ecx, esi
push eax
call fcn.0043b1b7
pop ecx
test eax, eax
je 0x46bd35
test esi, esi
je 0x46bcbc
mov ecx, dword [edi]
mov edx, esi
push 0
push 0
call fcn.0043a44b
pop ecx
pop ecx
mov esi, eax
jmp 0x46bcbe
xor esi, esi
mov ecx, dword [esp + 0x30]
mov eax, dword [edi]
mov dword [esp + 0x60], eax
test ecx, ecx
jne 0x46bcd2
mov dword [esp + 0x30], esi
jmp 0x46bd35
test esi, esi
je 0x46bd35
mov eax, dword [esi + 4]
or eax, dword [ecx + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x46bd23
cmp byte [edi + 0xdc], 2
jae 0x46bd23
push ecx
mov edx, 0x43a376
mov ecx, edi
call fcn.00457876
pop ecx
push esi
mov edx, 0x43a376
mov ecx, edi
call fcn.00457876
mov ecx, dword [esp + 0x64]
mov edx, 0x9b
mov dword [esp], 0x6325a8
call fcn.00439da2
jmp 0x46bd30
push esi
push ecx
push 0x2c
pop edx
mov ecx, edi
call fcn.00439e3d
pop ecx
mov dword [esp + 0x34], eax
pop ecx
push dword [ebp + 0xc]
mov esi, dword [esp + 0x2c]
mov ecx, esi
push dword [ebp + 8]
mov edx, dword [esp + 0x60]
call fcn.0046bb72
pop ecx
pop ecx
test eax, eax
je 0x46be05
mov edx, dword [esi + 0x18]
xor esi, esi
cmp edx, 0x40
jl 0x46bd68
mov dword [esp + 0x44], VariantInit
jmp 0x46bd81
mov eax, edx
xor ecx, ecx
bts esi, eax
cmp eax, 0x20
cmovae ecx, esi
xor esi, ecx
cmp eax, 0x40
cmovae ecx, esi
mov dword [esp + 0x44], ecx
cmp byte [esp + 0x13], 0
jne 0x46bdad
mov ecx, dword [esp + 0x38]
add edx, edx
mov eax, dword [ecx + 4]
push dword [eax + edx*8]
push dword [ecx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.0040e811
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x44]
mov ecx, esi
and ecx, dword [esp + 0x18]
and eax, dword [esp + 0x20]
or ecx, eax
jne 0x46be05
mov eax, dword [esp + 0x14]
mov edx, ebx
mov ecx, dword [edi]
inc eax
push eax
mov dword [esp + 0x64], eax
call fcn.0046cb7f
pop ecx
test eax, eax
jne 0x46c351
mov ecx, dword [esp + 0x14]
mov eax, ebx
or dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + 0x38]
or esi, dword [esp + 0x44]
mov dword [esp + 0x20], esi
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
jmp 0x46be09
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add edx, 0x30
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x40]
jb 0x46bc82
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
jmp 0x46be37
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
movzx eax, ax
mov word [ebx + 0x30], ax
mov word [ebx + 0x18], ax
mov eax, ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + 0x2c], 0x4241
or eax, 0xffffffff
cmp byte [ebx + 0x2b], 2
jne 0x46be62
mov dword [esp + 0x20], eax
jmp 0x46be7c
mov eax, dword [esp + 0x18]
not edx
not eax
or edx, 0x80000000
and eax, dword [esi + ecx + 0x40]
and edx, dword [esi + ecx + 0x44]
mov dword [esp + 0x20], edx
movzx edx, word [ebx + 0x22]
mov ebx, dword [esp + 0x34]
push 0x3f
pop ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], edx
movzx eax, dx
cmp cx, dx
jge 0x46be9f
mov dword [esp + 0x44], ecx
xor esi, esi
jmp 0x46beaf
movsx ecx, dx
xor esi, esi
mov dword [esp + 0x44], ecx
xor ecx, ecx
cmp cx, ax
jge 0x46beed
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x18]
and ecx, ebx
or edx, ecx
je 0x46bedc
inc dword [esp + 0x14]
inc esi
cmp esi, edi
jl 0x46beb7
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
xor esi, esi
mov ecx, dword [esp + 0x24]
cmp dword [ecx + eax + 0x44], esi
jg 0x46bf15
jl 0x46bf05
cmp dword [ecx + eax + 0x40], esi
jae 0x46bf15
mov ecx, dword [esp + 0x14]
movsx eax, dx
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x60]
mov ecx, dword [edi]
push eax
push esi
lea edx, [edx + 1]
call fcn.00448247
mov dword [esp + 0x30], eax
pop ecx
pop ecx
test eax, eax
je 0x46c351
mov ecx, dword [esp + 0x2c]
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x38]
mov dword [eax], str.auto_index
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x40]
jae 0x46c052
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x48], ecx
push dword [ebp + 0xc]
mov edx, dword [esp + 0x5c]
mov ecx, eax
push dword [ebp + 8]
call fcn.0046bb72
pop ecx
pop ecx
test eax, eax
je 0x46c039
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [ecx + 0x18]
cmp ecx, 0x40
jl 0x46bfad
mov eax, SysReAllocStringLen
jmp 0x46bfc0
xor eax, eax
bts edx, ecx
cmp ecx, 0x20
cmovae eax, edx
xor edx, eax
cmp ecx, 0x40
cmovae eax, edx
mov ecx, edx
mov dword [esp + 0x5c], eax
and ecx, dword [esp + 0x48]
and eax, dword [esp + 0x4c]
or ecx, eax
jne 0x46c039
mov eax, dword [esp + 0x3c]
or dword [esp + 0x48], edx
mov ecx, dword [eax]
mov ax, word [eax + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x4c]
or ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 4]
mov word [ecx + esi*2], ax
mov ecx, edi
call fcn.004396e8
test eax, eax
je 0x46c00a
mov ecx, dword [eax]
jmp 0x46c00f
mov ecx, str.BINARY
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], ecx
inc esi
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x46c039
call fcn.00439286
mov ecx, dword [esp + 0x50]
cmp al, 0x42
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x3c]
add eax, 0x30
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x40]
jb 0x46bf7d
mov ebx, dword [esp + 0x34]
and dword [esp + 0x60], 0
cmp dword [esp + 0x44], 0
jle 0x46c0aa
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x18]
and ecx, dword [esp + 0x20]
or edx, ecx
je 0x46c09b
mov eax, dword [ebx + 4]
mov word [eax + esi*2], di
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
inc edi
cmp edi, dword [esp + 0x44]
jl 0x46c066
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + eax + 0x44], 0
jg 0x46c0f4
jl 0x46c0c2
cmp dword [ecx + eax + 0x40], 0
jae 0x46c0f4
mov eax, dword [esp + 0x38]
push 0x3f
pop edx
cmp dx, word [eax + 0x22]
jge 0x46c0f4
mov ecx, dword [esp + 0x28]
mov ebx, eax
mov eax, dword [ecx + 4]
mov word [eax + esi*2], dx
mov eax, dword [ecx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
movsx eax, word [ebx + 0x22]
inc edx
cmp edx, eax
jl 0x46c0d5
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
or ecx, 0xffffffff
push 0
mov eax, dword [eax + 4]
mov word [eax + esi*2], cx
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0x20]
mov dword [eax + esi*4], str.BINARY
mov eax, dword [edi + 0x28]
mov dword [ecx + 8], eax
inc dword [edi + 0x28]
mov eax, dword [esp + 0x18]
inc eax
push eax
push dword [ecx + 8]
mov ecx, ebx
push 0x74
pop edx
call fcn.00428b9f
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, edi
call fcn.00429429
mov eax, dword [edi]
test dword [eax + 0x50], 0x80000
jne 0x46c183
cmp byte [esp + 0x50], 0
je 0x46c183
mov eax, dword [esp + 0x54]
mov ecx, edi
push dword [ebp + 0x10]
mov edx, dword [eax]
call fcn.0046655d
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov edx, dword [ebp + 0x10]
pop ecx
push 0
push eax
push 0x2710
mov dword [edx + 0x34], eax
mov ecx, ebx
push 0x4d
pop edx
call fcn.00428b9f
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
test byte [ecx + eax + 0x30], 0x20
je 0x46c1d7
mov eax, dword [ecx + eax + 0x24]
mov ecx, ebx
mov dword [esp + 0x68], eax
xor eax, eax
push eax
push eax
push eax
push 0x47
pop edx
call fcn.00428b9f
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
push dword [eax + ecx + 0x20]
mov ecx, ebx
push 0
push dword [esp + 0x70]
push 0xb
pop edx
call fcn.00428b9f
mov eax, dword [esp + 0x74]
add esp, 0xc
push 0xc
jmp 0x46c1df
mov eax, dword [ebp + 0x10]
push 0x24
mov eax, dword [eax + 4]
pop edx
push 0
push 0
push eax
mov ecx, ebx
call fcn.00428b9f
mov dword [esp + 0x74], eax
add esp, 0xc
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46c21d
dec dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
push 0x10
push ecx
push eax
push edi
mov dword [esp + 0x7c], ecx
call fcn.0043e629
mov eax, dword [esp + 0x3c]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov ecx, edi
call fcn.0043f8f4
mov edx, dword [esp + 0x28]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push eax
mov dword [esp + 0x74], eax
mov ecx, edi
mov eax, dword [ebp + 0x10]
push dword [eax + 4]
call fcn.0044b6a4
mov edx, dword [ebp + 0x10]
add esp, 0x18
mov dword [esp + 0x5c], eax
cmp dword [edx + 0x34], 0
je 0x46c271
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + 0x18]
push ecx
push eax
push 0
push dword [edx + 0x34]
mov edx, 0xb7
mov ecx, ebx
call fcn.00428bf8
mov edx, dword [ebp + 0x10]
add esp, 0x10
push 0
push dword [esp + 0x64]
mov ecx, ebx
push dword [edx + 8]
mov edx, 0x8a
call fcn.00428b9f
add esp, 0xc
mov ecx, ebx
push 0x10
pop edx
call fcn.00429165
cmp dword [esp + 0x30], 0
je 0x46c2a3
mov edx, dword [esp + 0x6c]
call fcn.00428f9d
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test byte [ecx + eax + 0x30], 0x20
mov ecx, ebx
je 0x46c301
add esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
call fcn.00429444
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], esi
push dword [edx + 8]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x6c]
push dword [ecx + eax + 0x28]
mov ecx, edi
push dword [edx + 4]
mov edx, esi
call fcn.0046badf
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.00428c53
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
and dword [ecx + eax + 0x30], 0xffffffdf
jmp 0x46c326
mov esi, dword [esp + 0x68]
push 0
lea eax, [esi + 1]
push eax
mov eax, dword [ebp + 0x10]
push dword [eax + 4]
push 0x27
pop edx
call fcn.00428b9f
add esp, 0xc
mov ecx, ebx
push 3
pop edx
call fcn.00429165
mov edx, esi
mov ecx, ebx
call fcn.00429444
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.0043f913
mov edx, dword [esp + 0x74]
mov ecx, ebx
call fcn.00429444
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46c362
mov ecx, dword [edi]
mov edx, eax
call fcn.0043a2ec
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret