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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
mov ebp, ecx
xor eax, eax
push esi
push edi
mov ebx, edx
mov dword [esp + 0x1c], ebp
mov edi, dword [ebp + 8]
mov dword [esp + 0x58], ebx
mov byte [esp + 0x17], al
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], edi
call fcn.00438077
mov ecx, dword [esp + 0x70]
xorps xmm0, xmm0
mov esi, dword [ebx + 0x14]
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x38], edx
imul edx, dword [ebx + 0xc], 0x30
movlpd qword [esp + 0x48], xmm0
add edx, esi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x7c]
mov ebx, dword [edx + 0x40]
mov dword [esp + 0x28], ebx
cmp esi, dword [esp + 0x30]
jae 0x459307
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
jmp 0x4591c5
mov ecx, dword [esp + 0x70]
mov eax, dword [ebx]
or eax, dword [ebx + 4]
jne 0x45920e
test byte [esi + 0x14], 2
jne 0x45920e
mov ebx, dword [esi]
test byte [ebx + 4], 1
jne 0x45920e
push dword [ecx + 0x30]
mov ecx, ebx
push 3
pop edx
call fcn.00437e9b
pop ecx
test eax, eax
je 0x45920e
mov ecx, dword [ebp]
mov edx, ebx
push 0
push 0
call fcn.00437686
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp]
push eax
call fcn.004372bc
add esp, 0xc
mov dword [esp + 0x2c], eax
push dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ecx, esi
push dword [esp + 0x78]
call fcn.004590f3
pop ecx
pop ecx
test eax, eax
je 0x4592e8
mov ecx, dword [esi + 0xc]
xor ebx, ebx
cmp ecx, 0x40
jl 0x45923c
mov ebp, 0x80000000
jmp 0x459251
mov eax, ecx
xor ebp, ebp
bts ebx, eax
cmp eax, 0x20
cmovae ebp, ebx
xor ebx, ebp
cmp eax, 0x40
cmovae ebp, ebx
cmp byte [esp + 0x17], 0
jne 0x45927e
mov edx, dword [esp + 0x38]
imul ecx, ecx, 0x18
mov eax, dword [edx + 4]
push dword [ecx + eax]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.004154c8
add esp, 0x10
mov byte [esp + 0x17], 1
mov edx, dword [esp + 0x24]
mov ecx, ebx
mov eax, ebp
and ecx, edx
and eax, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x18]
jne 0x4592e2
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x28]
push eax
mov dword [esp + 0x58], eax
mov ecx, dword [ecx]
call fcn.00459b14
pop ecx
test eax, eax
jne 0x459789
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
or edx, ebx
mov eax, dword [eax + 0x30]
mov dword [esp + 0x24], edx
mov dword [eax + ecx*4], esi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
or ecx, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
jmp 0x4592f4
mov ebp, dword [esp + 0x1c]
jmp 0x4592f0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
add esi, 0x30
cmp esi, dword [esp + 0x30]
jb 0x4591c1
jmp 0x45930f
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x70]
not ecx
movzx eax, ax
or ecx, 0x80000000
mov word [ebx + 0x28], ax
not edx
mov word [ebx + 0x18], ax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x24], 0x4241
and ecx, dword [esi + 0x44]
and edx, dword [esi + 0x40]
movzx ebx, word [eax + 0x22]
push 0x3f
mov dword [esp + 0x24], ecx
pop ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x54], ebx
movzx eax, bx
cmp cx, bx
jge 0x45935a
mov dword [esp + 0x34], ecx
jmp 0x459368
movsx ecx, bx
mov dword [esp + 0x34], ecx
xor ecx, ecx
cmp cx, ax
jge 0x4593ae
mov edi, dword [esp + 0x34]
xor esi, esi
mov ebp, dword [esp + 0x20]
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, ebp
or edx, ecx
je 0x459399
inc dword [esp + 0x18]
inc esi
cmp esi, edi
jl 0x459376
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x70]
xor edx, edx
cmp dword [esi + 0x44], edx
jg 0x4593cc
jl 0x4593bc
cmp dword [esi + 0x40], edx
jae 0x4593cc
mov ecx, dword [esp + 0x18]
movsx eax, bx
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp]
lea eax, [esp + 0x60]
push eax
push edx
mov edx, dword [esp + 0x20]
lea edx, [edx + 1]
call fcn.0043fbeb
mov ebx, eax
mov dword [esp + 0x68], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x45978d
mov eax, dword [esp + 0x28]
xor esi, esi
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov dword [eax + 0x1c], ebx
mov eax, dword [esp + 0x38]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [ebx], str.auto_index
mov eax, dword [eax + 0x14]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x30]
jae 0x4594ea
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
push dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ecx, edi
push dword [esp + 0x78]
call fcn.004590f3
pop ecx
pop ecx
test eax, eax
je 0x4594d9
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp ecx, 0x40
jl 0x459467
mov edx, 0x80000000
jmp 0x45947a
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], eax
and ecx, dword [esp + 0x3c]
mov eax, edx
and eax, dword [esp + 0x40]
or ecx, eax
mov dword [esp + 0x54], edx
jne 0x4594d9
mov eax, dword [esp + 0x3c]
or eax, dword [esp + 0x48]
mov edx, dword [edi]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov ax, word [edi + 0xc]
mov word [ecx + esi*2], ax
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 0xc]
call fcn.00436ec0
pop ecx
test eax, eax
je 0x4594cd
mov ecx, dword [eax]
jmp 0x4594d2
mov ecx, str.BINARY
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], ecx
inc esi
add edi, 0x30
cmp edi, dword [esp + 0x30]
jb 0x459439
mov edi, dword [esp + 0x44]
xor ebp, ebp
cmp dword [esp + 0x34], ebp
jle 0x459534
mov edi, dword [esp + 0x34]
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 + 0x20]
or edx, ecx
je 0x45952b
mov eax, dword [ebx + 4]
mov word [eax + esi*2], bp
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
inc ebp
cmp ebp, edi
jl 0x4594f6
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x44], 0
jg 0x45956e
jl 0x459546
cmp dword [eax + 0x40], 0
jae 0x45956e
mov edx, dword [esp + 0x38]
push 0x3f
pop ecx
cmp cx, word [edx + 0x22]
jge 0x45956e
mov eax, dword [ebx + 4]
mov word [eax + esi*2], cx
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
movsx eax, word [edx + 0x22]
inc ecx
cmp ecx, eax
jl 0x459553
mov eax, dword [ebx + 4]
or ecx, 0xffffffff
mov ebp, dword [esp + 0x1c]
push 0
mov word [eax + esi*2], cx
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x80]
mov dword [eax + esi*4], str.BINARY
mov eax, dword [ebp + 0x44]
mov dword [ecx + 8], eax
inc dword [ebp + 0x44]
mov eax, dword [esp + 0x1c]
inc eax
push eax
push dword [ecx + 8]
mov ecx, edi
push 0x38
pop edx
call fcn.00429abf
add esp, 0xc
mov edx, ebx
mov ecx, ebp
call fcn.0042a0fe
mov ecx, dword [esp + 0x7c]
inc dword [ebp + 0x64]
movzx eax, byte [ecx + 0x2c]
imul ebx, eax, 0x50
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ebp, dword [eax + 4]
test byte [ebx + ebp + 0x30], 0x10
je 0x459612
mov eax, dword [ebx + ebp + 0x24]
mov ecx, edi
mov dword [esp + 0x70], eax
xor eax, eax
push eax
push eax
push eax
push 0x17
pop edx
call fcn.00429abf
add esp, 0xc
mov dword [esp + 0x58], eax
mov ecx, edi
push dword [ebx + ebp + 0x20]
push 0
push dword [esp + 0x78]
push 0x11
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x7c]
add esp, 0xc
push 0x14
jmp 0x45961f
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x70]
push 0x6d
mov dword [esp + 0x5c], ecx
pop edx
push 0
push 0
push eax
mov ecx, edi
call fcn.00429abf
add esp, 0xc
mov dword [esp + 0x70], eax
cmp dword [esp + 0x2c], 0
je 0x459662
mov ecx, edi
call fcn.00429cb7
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
push 0x10
push eax
mov dword [esp + 0x64], eax
call fcn.0043a184
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
or dword [eax + 0x24], 0x20000
mov ecx, dword [esp + 0x1c]
call fcn.0043a997
xor edx, edx
mov dword [esp + 0x54], eax
push edx
push edx
push edx
push edx
mov edx, dword [esp + 0x8c]
push eax
push dword [edx + 4]
mov edx, dword [esp + 0x78]
call fcn.0044281c
push 0
push dword [esp + 0x70]
mov dword [esp + 0x80], eax
mov ecx, edi
mov eax, dword [esp + 0x9c]
push dword [eax + 8]
push 0x6f
pop edx
call fcn.00429abf
add esp, 0x24
or edx, 0xffffffff
mov ecx, edi
call fcn.0042a11a
cmp dword [esp + 0x2c], 0
mov byte [eax + 3], 0x10
je 0x4596cb
mov edx, dword [esp + 0x5c]
call fcn.00429cf4
test byte [ebx + ebp + 0x30], 0x10
mov ecx, edi
je 0x459712
mov edx, dword [esp + 0x58]
add esi, dword [esp + 0x60]
call fcn.0042a11a
push 1
mov dword [eax + 8], esi
mov eax, dword [esp + 0x80]
push dword [ebx + ebp + 0x28]
mov esi, dword [esp + 0x78]
mov edx, esi
push dword [eax + 4]
call fcn.00459088
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00429b34
and dword [ebx + ebp + 0x30], 0xffffffef
jmp 0x459731
mov esi, dword [esp + 0x70]
push 0
lea eax, [esi + 1]
push eax
mov eax, dword [esp + 0x84]
push dword [eax + 4]
push 8
pop edx
call fcn.00429abf
add esp, 0xc
or edx, 0xffffffff
mov ecx, edi
call fcn.0042a11a
mov edx, esi
mov byte [eax + 3], 3
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, edi
call fcn.0042a11a
mov ecx, dword [edi + 0x20]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, ebp
call fcn.0043a9b3
call fcn.00438dbc
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x64]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, edi
call fcn.0042a11a
mov ecx, dword [edi + 0x20]
mov dword [eax + 8], ecx
jmp 0x45978d
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ebp]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
jmp fcn.00437583