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

Disassembly:
sub esp, 0x84
mov eax, dword [0x490004]
xor eax, esp
mov dword [esp + 0x7c], eax
push ebx
mov ebx, dword [esp + 0x8c]
xor eax, eax
push ebp
push esi
mov esi, dword [esp + 0xa0]
push edi
push eax
mov edi, ecx
mov dword [esp + 0x64], edx
push eax
push eax
push 0x11
mov ebp, dword [edi + 8]
mov ecx, ebp
pop edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], esi
mov byte [esp + 0x27], al
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x20], ebp
call fcn.0041c3a0
mov ecx, dword [ebx + 0x10]
add esp, 0xc
mov esi, dword [esi + 0x40]
xorps xmm0, xmm0
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], esi
mov ebx, dword [ecx + 0x14]
imul ecx, dword [ecx + 0xc], 0x30
mov dword [esp + 0x20], ebx
movlpd qword [esp + 0x40], xmm0
add ecx, ebx
mov dword [esp + 0x5c], ecx
cmp ebx, ecx
jae 0x452cee
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esi]
or eax, dword [esi + 4]
jne 0x452bec
test byte [ebx + 0xa], 2
jne 0x452bec
mov esi, dword [ebx]
test byte [esi + 4], 1
jne 0x452bec
mov eax, dword [esp + 0x34]
mov ecx, esi
push dword [eax + 0x2c]
push 3
pop edx
call fcn.0042c3df
pop ecx
test eax, eax
je 0x452bec
mov ecx, dword [edi]
mov edx, esi
push 0
call fcn.0042ba8a
mov edx, dword [esp + 0x2c]
mov esi, eax
pop ecx
mov ecx, dword [edi]
mov dword [esp + 0x10], ecx
test edx, edx
jne 0x452b53
mov dword [esp + 0x28], esi
jmp 0x452bec
test esi, esi
je 0x452bec
mov eax, dword [edx + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x452b88
mov eax, dword [esi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x452b88
push esi
push edx
push 0x2c
pop edx
mov ecx, edi
call fcn.0042b2e9
pop ecx
jmp 0x452be7
cmp byte [edi + 0xc0], 2
jb 0x452bc6
xorps xmm0, xmm0
mov dword [esp + 0x70], edi
lea ecx, [esp + 0x70]
movlpd qword [esp + 0x7c], xmm0
movlpd qword [esp + 0x84], xmm0
mov dword [esp + 0x74], 0x430b14
mov dword [esp + 0x78], 0x430b29
call fcn.004289f6
mov ecx, dword [edi]
mov edx, dword [esp + 0x28]
call fcn.0042b5cc
mov edx, esi
mov ecx, edi
call fcn.0042b682
mov ecx, dword [esp + 0x10]
mov edx, 0x96
push 0x4897a8
call fcn.0042b2ba
mov dword [esp + 0x2c], eax
pop ecx
push dword [esp + 0xa0]
mov edx, dword [esp + 0x38]
mov ecx, ebx
push dword [esp + 0xa0]
call fcn.004529e8
pop ecx
pop ecx
test eax, eax
je 0x452ccb
mov ecx, dword [ebx + 0x1c]
xor esi, esi
cmp ecx, 0x40
jl 0x452c20
mov ebx, 0x80000000
jmp 0x452c35
mov eax, ecx
xor ebx, ebx
bts esi, eax
cmp eax, 0x20
cmovae ebx, esi
xor esi, ebx
cmp eax, 0x40
cmovae ebx, esi
cmp byte [esp + 0x1b], 0
jne 0x452c61
mov edx, dword [esp + 0x4c]
add ecx, ecx
mov eax, dword [edx + 4]
push dword [eax + ecx*8]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.00406588
add esp, 0x10
mov byte [esp + 0x1b], 1
mov edx, dword [esp + 0x30]
mov ecx, esi
mov eax, ebx
and ecx, edx
and eax, dword [esp + 0x24]
or ecx, eax
mov eax, dword [esp + 0x1c]
jne 0x452cc5
mov edx, dword [esp + 0x38]
inc eax
mov ecx, dword [edi]
push eax
mov dword [esp + 0x14], eax
call fcn.0045350f
pop ecx
test eax, eax
jne 0x45314e
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
or edx, esi
mov eax, dword [esp + 0x10]
or ecx, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], ecx
jmp 0x452cd7
mov ebx, dword [esp + 0x20]
jmp 0x452cd3
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
add ebx, 0x30
mov dword [esp + 0x20], ebx
cmp ebx, dword [esp + 0x5c]
jb 0x452af3
jmp 0x452cf6
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
movzx eax, ax
not ecx
mov word [esi + 0x28], ax
or ecx, 0x80000000
mov word [esi + 0x18], ax
not edx
mov eax, dword [esp + 0x34]
mov dword [esi + 0x24], 0x4241
push 0x3f
and ecx, dword [eax + 0x3c]
and edx, dword [eax + 0x38]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x28], ecx
pop ecx
mov dword [esp + 0x30], edx
movzx ebx, word [eax + 0x2a]
mov dword [esp + 0x10], ebx
movzx eax, bx
cmp cx, bx
jge 0x452d41
mov dword [esp + 0x20], ecx
jmp 0x452d4f
movsx ecx, bx
mov dword [esp + 0x20], ecx
xor ecx, ecx
cmp cx, ax
jge 0x452d95
mov ebp, dword [esp + 0x20]
xor esi, esi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
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, ebx
and ecx, edi
or edx, ecx
je 0x452d80
inc dword [esp + 0x1c]
inc esi
cmp esi, ebp
jl 0x452d5d
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
xor edx, edx
cmp dword [eax + 0x3c], edx
jg 0x452db7
jl 0x452da7
cmp dword [eax + 0x38], edx
jae 0x452db7
mov ecx, dword [esp + 0x1c]
movsx eax, bx
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi]
lea eax, [esp + 0x50]
push eax
push edx
mov edx, dword [esp + 0x24]
lea edx, [edx + 1]
call fcn.00436a64
mov ebx, eax
mov dword [esp + 0x58], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x45314e
mov eax, dword [esp + 0x4c]
xorps xmm0, xmm0
mov dword [esi + 0x20], ebx
xor esi, esi
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [ebx], str.auto_index
movlpd qword [esp + 0x40], xmm0
mov eax, dword [eax + 0x14]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x5c]
jae 0x452ed5
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x54], eax
push dword [esp + 0xa0]
mov edx, dword [esp + 0x38]
mov ecx, ebp
push dword [esp + 0xa0]
call fcn.004529e8
pop ecx
pop ecx
test eax, eax
je 0x452ec4
mov ecx, dword [ebp + 0x1c]
xor eax, eax
cmp ecx, 0x40
jl 0x452e53
mov edx, 0x80000000
jmp 0x452e66
xor edx, edx
bts eax, ecx
cmp ecx, 0x20
cmovae edx, eax
xor eax, edx
cmp ecx, 0x40
cmovae edx, eax
mov ecx, eax
mov dword [esp + 0x10], edx
and ecx, dword [esp + 0x54]
and edx, dword [esp + 0x58]
or ecx, edx
mov dword [esp + 0x40], eax
jne 0x452ec4
mov eax, dword [esp + 0x54]
or eax, dword [esp + 0x40]
mov edx, dword [ebp]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x58]
or eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov ax, word [ebp + 0x1c]
mov word [ecx + esi*2], ax
mov ecx, edi
push dword [edx + 0x10]
mov edx, dword [edx + 0xc]
call fcn.0042adcd
pop ecx
test eax, eax
je 0x452eb8
mov ecx, dword [eax]
jmp 0x452ebd
mov ecx, 0x48162c
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], ecx
inc esi
add ebp, 0x30
cmp ebp, dword [esp + 0x5c]
jb 0x452e1f
mov ebp, dword [esp + 0x14]
and dword [esp + 0x10], 0
cmp dword [esp + 0x20], 0
jle 0x452f2b
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
xor edx, edx
xor ecx, ecx
mov eax, ebp
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x30]
and ecx, dword [esp + 0x24]
or edx, ecx
je 0x452f1e
mov eax, dword [ebx + 4]
mov word [eax + esi*2], bp
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], 0x48162c
inc esi
inc ebp
cmp ebp, edi
jl 0x452ee9
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x3c], 0
jg 0x452f65
jl 0x452f3d
cmp dword [eax + 0x38], 0
jae 0x452f65
mov edx, dword [esp + 0x4c]
push 0x3f
pop ecx
cmp cx, word [edx + 0x2a]
jge 0x452f65
mov eax, dword [ebx + 4]
mov word [eax + esi*2], cx
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], 0x48162c
inc esi
movsx eax, word [edx + 0x2a]
inc ecx
cmp ecx, eax
jl 0x452f4a
mov eax, dword [ebx + 4]
or ecx, 0xffffffff
push 0
mov word [eax + esi*2], cx
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x40]
mov dword [eax + esi*4], 0x48162c
mov eax, dword [edi + 0x28]
mov dword [ecx + 8], eax
inc dword [edi + 0x28]
mov eax, dword [esp + 0x20]
inc eax
push eax
push dword [ecx + 8]
mov ecx, ebp
push 0x6f
pop edx
call fcn.0041c3a0
add esp, 0xc
mov edx, ebx
mov ecx, edi
call fcn.0041caed
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + 0x2c]
imul ebx, eax, 0x48
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ebp, dword [eax + 4]
test byte [ebx + ebp + 0x30], 0x10
je 0x453003
mov eax, dword [ebx + ebp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
xor eax, eax
push eax
push eax
push eax
push 0x46
pop edx
call fcn.0041c3a0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x68], eax
push dword [ebx + ebp + 0x20]
push 0
push dword [esp + 0x34]
push 0xd
pop edx
call fcn.0041c3a0
mov eax, dword [esp + 0x38]
add esp, 0xc
push 0xe
jmp 0x453008
mov eax, dword [ecx + 4]
push 0x24
mov ecx, dword [esp + 0x18]
pop edx
push 0
push 0
push eax
call fcn.0041c3a0
mov dword [esp + 0x38], eax
add esp, 0xc
mov eax, dword [esp + 0x28]
test eax, eax
je 0x453048
dec dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
push 0x10
push ecx
push eax
push edi
mov dword [esp + 0x74], ecx
call fcn.0042f237
mov eax, dword [esp + 0x48]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov ecx, edi
call fcn.004300e8
mov edx, dword [esp + 0x50]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push eax
mov dword [esp + 0x24], eax
mov ecx, edi
mov eax, dword [esp + 0x50]
push dword [eax + 4]
call fcn.00439af1
mov ecx, dword [esp + 0x2c]
mov edx, 0x84
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
push 0
push dword [esp + 0x2c]
push dword [eax + 8]
call fcn.0041c3a0
mov ecx, dword [esp + 0x38]
add esp, 0x24
push 0x10
pop edx
call fcn.0041c871
cmp dword [esp + 0x28], 0
je 0x4530ae
mov edx, dword [esp + 0x64]
call fcn.0041c6a2
mov ecx, dword [esp + 0x14]
test byte [ebx + ebp + 0x30], 0x10
je 0x4530f9
mov edx, dword [esp + 0x68]
add esi, dword [esp + 0x50]
call fcn.0041cb08
mov ecx, edi
mov dword [eax + 8], esi
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov edx, esi
push dword [eax + 8]
push dword [ebx + ebp + 0x28]
push dword [eax + 4]
call fcn.00452974
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
call fcn.0041c41c
and dword [ebx + ebp + 0x30], 0xffffffef
mov ebx, dword [esp + 0x14]
jmp 0x45311b
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
push 0
lea eax, [esi + 1]
push eax
mov eax, dword [esp + 0x44]
push dword [eax + 4]
push 5
pop edx
call fcn.0041c3a0
add esp, 0xc
push 3
pop edx
mov ecx, ebx
call fcn.0041c871
mov edx, esi
call fcn.0041cb08
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.00430107
mov edx, dword [esp + 0x6c]
mov ecx, ebx
call fcn.0041cb08
mov edx, dword [ebx + 0x6c]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [edi]
call fcn.0042b66f
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004614f6
add esp, 0x84
ret