Function at 0x4b1469
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.0046e343
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 0x4b16c8
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 0x4b15d2
mov esi, dword [edx]
mov edx, ecx
movzx eax, byte [eax + 0x3c]
mov ecx, esi
push eax
call fcn.00480b49
pop ecx
test eax, eax
je 0x4b15d2
test esi, esi
je 0x4b1559
mov ecx, dword [edi]
mov edx, esi
push 0
push 0
call fcn.0047fdbc
pop ecx
pop ecx
mov esi, eax
jmp 0x4b155b
xor esi, esi
mov ecx, dword [esp + 0x30]
mov eax, dword [edi]
mov dword [esp + 0x60], eax
test ecx, ecx
jne 0x4b156f
mov dword [esp + 0x30], esi
jmp 0x4b15d2
test esi, esi
je 0x4b15d2
mov eax, dword [esi + 4]
or eax, dword [ecx + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x4b15c0
cmp byte [edi + 0xdc], 2
jae 0x4b15c0
push ecx
mov edx, 0x47fcd2
mov ecx, edi
call fcn.0049d069
pop ecx
push esi
mov edx, 0x47fcd2
mov ecx, edi
call fcn.0049d069
mov ecx, dword [esp + 0x64]
mov edx, 0x9b
mov dword [esp], 0x6cb868
call fcn.0047f6f3
jmp 0x4b15cd
push esi
push ecx
push 0x2c
pop edx
mov ecx, edi
call fcn.0047f799
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.004b140f
pop ecx
pop ecx
test eax, eax
je 0x4b16a2
mov edx, dword [esi + 0x18]
xor esi, esi
cmp edx, 0x40
jl 0x4b1605
mov dword [esp + 0x44], SysReAllocString
jmp 0x4b161e
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 0x4b164a
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.00453350
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 0x4b16a2
mov eax, dword [esp + 0x14]
mov edx, ebx
mov ecx, dword [edi]
inc eax
push eax
mov dword [esp + 0x64], eax
call fcn.004b241c
pop ecx
test eax, eax
jne 0x4b1bee
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 0x4b16a6
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 0x4b151f
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
jmp 0x4b16d4
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 0x4b16ff
mov dword [esp + 0x20], eax
jmp 0x4b1719
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 0x4b173c
mov dword [esp + 0x44], ecx
xor esi, esi
jmp 0x4b174c
movsx ecx, dx
xor esi, esi
mov dword [esp + 0x44], ecx
xor ecx, ecx
cmp cx, ax
jge 0x4b178a
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 0x4b1779
inc dword [esp + 0x14]
inc esi
cmp esi, edi
jl 0x4b1754
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 0x4b17b2
jl 0x4b17a2
cmp dword [ecx + eax + 0x40], esi
jae 0x4b17b2
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.0048dcd0
mov dword [esp + 0x30], eax
pop ecx
pop ecx
test eax, eax
je 0x4b1bee
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 0x4b18ef
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.004b140f
pop ecx
pop ecx
test eax, eax
je 0x4b18d6
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [ecx + 0x18]
cmp ecx, 0x40
jl 0x4b184a
mov eax, SysReAllocString
jmp 0x4b185d
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 0x4b18d6
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.0047f048
test eax, eax
je 0x4b18a7
mov ecx, dword [eax]
jmp 0x4b18ac
mov ecx, 0x6bfb20
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 0x4b18d6
call fcn.0047ebdb
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 0x4b181a
mov ebx, dword [esp + 0x34]
and dword [esp + 0x60], 0
cmp dword [esp + 0x44], 0
jle 0x4b1947
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 0x4b1938
mov eax, dword [ebx + 4]
mov word [eax + esi*2], di
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], 0x6bfb20
inc esi
inc edi
cmp edi, dword [esp + 0x44]
jl 0x4b1903
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 0x4b1991
jl 0x4b195f
cmp dword [ecx + eax + 0x40], 0
jae 0x4b1991
mov eax, dword [esp + 0x38]
push 0x3f
pop edx
cmp dx, word [eax + 0x22]
jge 0x4b1991
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], 0x6bfb20
inc esi
movsx eax, word [ebx + 0x22]
inc edx
cmp edx, eax
jl 0x4b1972
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], 0x6bfb20
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.0046e343
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, edi
call fcn.0046ebe0
mov eax, dword [edi]
test dword [eax + 0x50], 0x80000
jne 0x4b1a20
cmp byte [esp + 0x50], 0
je 0x4b1a20
mov eax, dword [esp + 0x54]
mov ecx, edi
push dword [ebp + 0x10]
mov edx, dword [eax]
call fcn.004abdba
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.0046e343
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
test byte [ecx + eax + 0x30], 0x20
je 0x4b1a74
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.0046e343
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.0046e343
mov eax, dword [esp + 0x74]
add esp, 0xc
push 0xc
jmp 0x4b1a7c
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.0046e343
mov dword [esp + 0x74], eax
add esp, 0xc
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4b1aba
dec dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
push 0x10
push ecx
push eax
push edi
mov dword [esp + 0x7c], ecx
call fcn.00483fcc
mov eax, dword [esp + 0x3c]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov ecx, edi
call fcn.004852b1
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.004911a7
mov edx, dword [ebp + 0x10]
add esp, 0x18
mov dword [esp + 0x5c], eax
cmp dword [edx + 0x34], 0
je 0x4b1b0e
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.0046e39c
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.0046e343
add esp, 0xc
mov ecx, ebx
push 0x10
pop edx
call fcn.0046e90c
cmp dword [esp + 0x30], 0
je 0x4b1b40
mov edx, dword [esp + 0x6c]
call fcn.0046e744
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test byte [ecx + eax + 0x30], 0x20
mov ecx, ebx
je 0x4b1b9e
add esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
call fcn.0046ebfb
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.004b137c
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.0046e3f7
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
and dword [ecx + eax + 0x30], 0xffffffdf
jmp 0x4b1bc3
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.0046e343
add esp, 0xc
mov ecx, ebx
push 3
pop edx
call fcn.0046e90c
mov edx, esi
mov ecx, ebx
call fcn.0046ebfb
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.004852d0
mov edx, dword [esp + 0x74]
mov ecx, ebx
call fcn.0046ebfb
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4b1bff
mov ecx, dword [edi]
mov edx, eax
call fcn.0047fc48
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret