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

Disassembly:
sub esp, 0x74
push ebx
push ebp
push esi
xor ebx, ebx
mov esi, edx
push edi
push ebx
mov edi, ecx
mov dword [esp + 0x54], esi
push ebx
push ebx
push 0x11
mov ebp, dword [edi + 8]
mov ecx, ebp
pop edx
mov dword [esp + 0x58], edi
mov byte [esp + 0x1f], bl
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], ebp
call fcn.00421dad
mov ecx, dword [esp + 0x94]
add esp, 0xc
imul edx, dword [esi + 0xc], 0x30
xorps xmm0, xmm0
mov dword [esp + 0x60], eax
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0x10]
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x30], eax
add edx, ebx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], edx
movlpd qword [esp + 0x40], xmm0
mov esi, dword [eax + 0x40]
mov dword [esp + 0x28], esi
cmp ebx, edx
jae 0x457529
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
jmp 0x457336
mov ecx, dword [esp + 0x88]
mov eax, dword [esi]
or eax, dword [esi + 4]
jne 0x457428
test byte [ebx + 0xa], 2
jne 0x457428
mov esi, dword [ebx]
test byte [esi + 4], 1
jne 0x457428
push dword [ecx + 0x2c]
mov ecx, esi
push 3
pop edx
call fcn.00431711
pop ecx
test eax, eax
je 0x457428
mov ecx, dword [edi]
mov edx, esi
push 0
call fcn.00430de0
mov edx, dword [esp + 0x24]
mov esi, eax
pop ecx
mov ecx, dword [edi]
mov dword [esp + 0x48], ecx
test edx, edx
jne 0x457392
mov dword [esp + 0x20], esi
jmp 0x457428
test esi, esi
je 0x457428
mov eax, dword [edx + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x4573c7
mov eax, dword [esi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x4573c7
push esi
push edx
push 0x2c
pop edx
mov ecx, edi
call fcn.0043066b
pop ecx
jmp 0x457423
cmp byte [edi + 0xc0], 2
jb 0x457402
xorps xmm0, xmm0
mov dword [esp + 0x64], edi
lea ecx, [esp + 0x64]
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
mov dword [esp + 0x68], 0x435ca1
mov dword [esp + 0x6c], 0x435cb6
call fcn.0042de5e
mov ecx, dword [edi]
mov edx, dword [esp + 0x20]
call fcn.0043094d
mov edx, esi
mov ecx, edi
call fcn.00430a03
mov ecx, dword [esp + 0x48]
mov edx, 0x96
push 0x4b5e78
call fcn.0043063c
mov dword [esp + 0x24], eax
pop ecx
push dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov ecx, ebx
push dword [esp + 0x90]
call fcn.0045723c
pop ecx
pop ecx
test eax, eax
je 0x45750a
mov ecx, dword [ebx + 0x1c]
xor esi, esi
cmp ecx, 0x40
jl 0x45745f
mov ebx, 0x80000000
jmp 0x457474
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 + 0x13], 0
jne 0x4574a0
mov edx, dword [esp + 0x30]
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.0040cdcd
add esp, 0x10
mov byte [esp + 0x13], 1
mov edx, dword [esp + 0x24]
mov ecx, esi
mov eax, ebx
and ecx, edx
and eax, dword [esp + 0x1c]
or ecx, eax
jne 0x457504
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
inc eax
mov ecx, dword [edi]
push eax
mov dword [esp + 0x4c], eax
call fcn.00457d5a
pop ecx
test eax, eax
jne 0x4579ab
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
or edx, esi
mov eax, dword [esp + 0x48]
or ecx, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], ecx
jmp 0x457512
mov ebx, dword [esp + 0x2c]
jmp 0x45750e
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
add ebx, 0x30
mov dword [esp + 0x2c], ebx
cmp ebx, dword [esp + 0x3c]
jb 0x45732f
jmp 0x457531
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
not ecx
movzx eax, ax
or ecx, 0x80000000
mov word [esi + 0x28], ax
not edx
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x88]
mov dword [esi + 0x24], 0x4241
push 0x3f
and ecx, dword [eax + 0x3c]
and edx, dword [eax + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
pop ecx
mov dword [esp + 0x24], edx
movzx ebx, word [eax + 0x2a]
mov dword [esp + 0x48], ebx
movzx eax, bx
cmp cx, bx
jge 0x457583
mov dword [esp + 0x2c], ecx
jmp 0x457591
movsx ecx, bx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp cx, ax
jge 0x4575d7
mov ebp, dword [esp + 0x2c]
xor esi, esi
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
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 0x4575c2
inc dword [esp + 0x18]
inc esi
cmp esi, ebp
jl 0x45759f
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x88]
xor edx, edx
cmp dword [eax + 0x3c], edx
jg 0x4575fc
jl 0x4575ec
cmp dword [eax + 0x38], edx
jae 0x4575fc
mov ecx, dword [esp + 0x18]
movsx eax, bx
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [edi]
lea eax, [esp + 0x5c]
push eax
push edx
mov edx, dword [esp + 0x20]
lea edx, [edx + 1]
call fcn.0043b9a9
mov ebx, eax
mov dword [esp + 0x64], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x4579ab
mov eax, dword [esp + 0x30]
xorps xmm0, xmm0
mov dword [esi + 0x20], ebx
xor esi, esi
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [ebx], str.auto_index
movlpd qword [esp + 0x40], xmm0
mov eax, dword [eax + 0x14]
mov dword [esp + 0x48], eax
cmp eax, dword [esp + 0x3c]
jae 0x45771d
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
push dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov ecx, ebp
push dword [esp + 0x90]
call fcn.0045723c
pop ecx
pop ecx
test eax, eax
je 0x45770c
mov ecx, dword [ebp + 0x1c]
xor eax, eax
cmp ecx, 0x40
jl 0x45769b
mov edx, 0x80000000
jmp 0x4576ae
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 + 0x48], edx
and ecx, dword [esp + 0x34]
and edx, dword [esp + 0x38]
or ecx, edx
mov dword [esp + 0x40], eax
jne 0x45770c
mov eax, dword [esp + 0x34]
or eax, dword [esp + 0x40]
mov edx, dword [ebp]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x48]
mov dword [esp + 0x38], 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.00430158
pop ecx
test eax, eax
je 0x457700
mov ecx, dword [eax]
jmp 0x457705
mov ecx, 0x4a4b1c
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], ecx
inc esi
add ebp, 0x30
cmp ebp, dword [esp + 0x3c]
jb 0x457664
mov ebp, dword [esp + 0x14]
and dword [esp + 0x48], 0
cmp dword [esp + 0x2c], 0
jle 0x457773
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
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 + 0x24]
and ecx, dword [esp + 0x1c]
or edx, ecx
je 0x457766
mov eax, dword [ebx + 4]
mov word [eax + esi*2], bp
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], 0x4a4b1c
inc esi
inc ebp
cmp ebp, edi
jl 0x457731
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x88]
cmp dword [eax + 0x3c], 0
jg 0x4577b0
jl 0x457788
cmp dword [eax + 0x38], 0
jae 0x4577b0
mov edx, dword [esp + 0x30]
push 0x3f
pop ecx
cmp cx, word [edx + 0x2a]
jge 0x4577b0
mov eax, dword [ebx + 4]
mov word [eax + esi*2], cx
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], 0x4a4b1c
inc esi
movsx eax, word [edx + 0x2a]
inc ecx
cmp ecx, eax
jl 0x457795
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 + 0x98]
mov dword [eax + esi*4], 0x4a4b1c
mov eax, dword [edi + 0x28]
mov dword [ecx + 8], eax
inc dword [edi + 0x28]
mov eax, dword [esp + 0x1c]
inc eax
push eax
push dword [ecx + 8]
mov ecx, ebp
push 0x6f
pop edx
call fcn.00421dad
add esp, 0xc
mov edx, ebx
mov ecx, edi
call fcn.004224f5
mov ecx, dword [esp + 0x94]
movzx eax, byte [ecx + 0x2c]
imul ebx, eax, 0x48
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov ebp, dword [eax + 4]
test byte [ebx + ebp + 0x30], 0x10
je 0x457854
mov eax, dword [ebx + ebp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], eax
xor eax, eax
push eax
push eax
push eax
push 0x46
pop edx
call fcn.00421dad
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x58], eax
push dword [ebx + ebp + 0x20]
push 0
push dword [esp + 0x58]
push 0xd
pop edx
call fcn.00421dad
mov eax, dword [esp + 0x5c]
add esp, 0xc
push 0xe
jmp 0x457859
mov eax, dword [ecx + 4]
push 0x24
mov ecx, dword [esp + 0x18]
pop edx
push 0
push 0
push eax
call fcn.00421dad
mov dword [esp + 0x5c], eax
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
je 0x457899
dec dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
push 0x10
push ecx
push eax
push edi
mov dword [esp + 0x64], ecx
call fcn.00434446
mov eax, dword [esp + 0x38]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov ecx, edi
call fcn.00435291
mov edx, dword [esp + 0x5c]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push eax
mov dword [esp + 0x60], eax
mov ecx, edi
mov eax, dword [esp + 0xa8]
push dword [eax + 4]
call fcn.0043e95a
mov ecx, dword [esp + 0x2c]
mov edx, 0x84
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xac]
push 0
push dword [esp + 0x68]
push dword [eax + 8]
call fcn.00421dad
mov ecx, dword [esp + 0x38]
add esp, 0x24
push 0x10
pop edx
call fcn.0042227b
cmp dword [esp + 0x20], 0
je 0x457905
mov edx, dword [esp + 0x54]
call fcn.004220ac
mov ecx, dword [esp + 0x14]
test byte [ebx + ebp + 0x30], 0x10
je 0x457953
mov edx, dword [esp + 0x58]
add esi, dword [esp + 0x5c]
call fcn.00422510
mov ecx, edi
mov dword [eax + 8], esi
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x50]
mov edx, esi
push dword [eax + 8]
push dword [ebx + ebp + 0x28]
push dword [eax + 4]
call fcn.004571c8
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
call fcn.00421e2a
and dword [ebx + ebp + 0x30], 0xffffffef
mov ebx, dword [esp + 0x14]
jmp 0x457978
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
push 0
lea eax, [esi + 1]
push eax
mov eax, dword [esp + 0x9c]
push dword [eax + 4]
push 5
pop edx
call fcn.00421dad
add esp, 0xc
push 3
pop edx
mov ecx, ebx
call fcn.0042227b
mov edx, esi
call fcn.00422510
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.004352b0
mov edx, dword [esp + 0x60]
mov ecx, ebx
call fcn.00422510
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [edi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
jmp fcn.004309f0