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

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
mov esi, dword [esp + 0x68]
xor ebx, ebx
push edi
push 0xf
mov byte [esp + 0x17], bl
mov edi, dword [esi + 8]
push edi
mov byte [esp + 0x50], bl
mov dword [esp + 0x28], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x4c], edi
call fcn.0057b73c
mov dword [esp + 0x6c], eax
xorps xmm0, xmm0
mov eax, dword [esp + 0x78]
pop ecx
pop ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax]
mov dword [esp + 0x14], ebx
movlpd qword [esp + 0x50], xmm0
mov edx, dword [eax + 4]
movzx eax, byte [ecx + 0x3c]
imul eax, eax, 0x48
mov dword [esp + 0x58], edx
lea ebx, [edx + 8]
add ebx, eax
mov dword [esp + 0x28], ebx
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x70]
imul edx, dword [eax + 0xc], 0x30
mov ebp, dword [eax + 0x18]
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], eax
add edx, ebp
mov dword [esp + 0x40], edx
cmp ebp, edx
jae 0x53c5da
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
test byte [ebp + 0xa], 2
jne 0x53c4e3
movzx eax, byte [ecx + 0x3c]
mov edx, dword [ebp]
push eax
push dword [esp + 0x5c]
mov dword [esp + 0x58], edx
push edx
call fcn.00565305
add esp, 0xc
test eax, eax
je 0x53c4e3
push 0
push dword [esp + 0x54]
push dword [esi]
call fcn.005648df
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, dword [esi]
add esp, 0xc
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
test edx, edx
jne 0x53c48a
mov dword [esp + 0x20], ecx
jmp 0x53c4e3
test ecx, ecx
je 0x53c4e3
mov eax, dword [ecx + 4]
or eax, dword [edx + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x53c4d2
cmp byte [esi + 0xdc], 2
jae 0x53c4d2
push edx
push esi
call fcn.00564838
push dword [esp + 0x58]
push esi
call fcn.00564838
push 0x65a844
push 0x9b
push dword [esp + 0x64]
call fcn.0056226d
add esp, 0x1c
jmp 0x53c4df
push ecx
push edx
push 0x2c
push esi
call fcn.0056da79
add esp, 0x10
mov dword [esp + 0x20], eax
push dword [esp + 0x78]
push dword [esp + 0x78]
push ebx
push ebp
call fcn.0058cb76
add esp, 0x10
test eax, eax
je 0x53c5bb
mov edx, dword [ebp + 0x18]
xor ebp, ebp
cmp edx, 0x40
jl 0x53c511
mov dword [esp + 0x30], 0x80000000
jmp 0x53c52a
mov eax, edx
xor ecx, ecx
bts ebp, eax
cmp eax, 0x20
cmovae ecx, ebp
xor ebp, ecx
cmp eax, 0x40
cmovae ecx, ebp
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x13], 0
jne 0x53c556
mov ecx, dword [esp + 0x34]
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.0052882c
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x30]
mov ecx, ebp
mov edx, dword [esp + 0x18]
and eax, edx
and ecx, dword [esp + 0x1c]
or ecx, eax
jne 0x53c5b5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
inc eax
push eax
push ecx
push dword [esi]
mov dword [esp + 0x5c], eax
call fcn.0059606c
add esp, 0xc
test eax, eax
jne 0x53caae
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
or dword [esp + 0x1c], ebp
mov eax, dword [eax + 0x38]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x18]
or edx, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov ebp, dword [esp + 0x2c]
jmp 0x53c5bf
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
add ebp, 0x30
mov dword [esp + 0x2c], ebp
cmp ebp, dword [esp + 0x40]
jb 0x53c435
mov ebp, dword [esp + 0x1c]
jmp 0x53c5e2
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
movzx eax, ax
mov word [ecx + 0x30], ax
mov word [ecx + 0x18], ax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x2c], 0x4241
or ecx, 0xffffffff
cmp byte [eax + 0x2b], 2
jne 0x53c613
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
jmp 0x53c62b
not edx
not ebp
and ebp, dword [ebx + 0x38]
or edx, 0x80000000
and edx, dword [ebx + 0x3c]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
movzx eax, word [eax + 0x22]
xor ebp, ebp
push 0x3f
pop ecx
mov dword [esp + 0x58], eax
cmp cx, ax
jge 0x53c643
mov dword [esp + 0x30], ecx
jmp 0x53c64e
movsx ecx, ax
mov dword [esp + 0x30], ecx
test ecx, ecx
jle 0x53c692
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
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, ebx
and ecx, edi
or edx, ecx
je 0x53c67d
inc dword [esp + 0x14]
inc ebp
cmp ebp, esi
jl 0x53c65a
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
cmp dword [ebx + 0x3c], 0
jg 0x53c6ae
jl 0x53c6a0
cmp dword [ebx + 0x38], 0
jae 0x53c6ae
mov ecx, dword [esp + 0x14]
cwde
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x18]
push 0
inc eax
push eax
push dword [esi]
call fcn.00558395
mov ebp, eax
add esp, 0x10
mov dword [esp + 0x58], ebp
test ebp, ebp
je 0x53caae
mov eax, dword [esp + 0x24]
xor ebx, ebx
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [eax + 0x20], ebp
mov eax, dword [esp + 0x34]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [ebp], str.auto_index
mov eax, dword [eax + 0x18]
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x40]
jae 0x53c7f4
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x38], ecx
push dword [esp + 0x78]
push dword [esp + 0x78]
push edi
push eax
call fcn.0058cb76
add esp, 0x10
test eax, eax
je 0x53c7db
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [eax + 0x18]
cmp ecx, 0x40
jl 0x53c74b
mov eax, 0x80000000
jmp 0x53c75e
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 + 0x4c], eax
and ecx, dword [esp + 0x38]
and eax, dword [esp + 0x3c]
or ecx, eax
jne 0x53c7db
mov eax, dword [esp + 0x2c]
or dword [esp + 0x38], edx
mov ecx, dword [eax]
mov ax, word [eax + 0x18]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
or ecx, dword [esp + 0x4c]
push dword [esp + 0x50]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 4]
push esi
mov word [ecx + ebx*2], ax
call fcn.00564698
pop ecx
pop ecx
test eax, eax
je 0x53c7a9
mov ecx, dword [eax]
jmp 0x53c7ae
mov ecx, 0x657310
mov eax, dword [ebp + 0x20]
mov dword [eax + ebx*4], ecx
inc ebx
mov eax, dword [esp + 0x50]
cmp dword [eax + 0xc], 0
je 0x53c7db
push dword [eax + 0xc]
call fcn.0056238d
pop ecx
mov ecx, dword [esp + 0x48]
cmp al, 0x42
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x2c]
add eax, 0x30
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x40]
jb 0x53c71c
mov edi, dword [esp + 0x44]
and dword [esp + 0x50], 0
cmp dword [esp + 0x30], 0
jle 0x53c84a
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x18]
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 + 0x1c]
and ecx, esi
or edx, ecx
je 0x53c83b
mov eax, dword [ebp + 4]
mov word [eax + ebx*2], di
mov eax, dword [ebp + 0x20]
mov dword [eax + ebx*4], 0x657310
inc ebx
inc edi
cmp edi, dword [esp + 0x30]
jl 0x53c808
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x3c], 0
jg 0x53c884
jl 0x53c85c
cmp dword [eax + 0x38], 0
jae 0x53c884
mov edx, dword [esp + 0x34]
push 0x3f
pop ecx
cmp cx, word [edx + 0x22]
jge 0x53c884
mov eax, dword [ebp + 4]
mov word [eax + ebx*2], cx
mov eax, dword [ebp + 0x20]
mov dword [eax + ebx*4], 0x657310
inc ebx
movsx eax, word [edx + 0x22]
inc ecx
cmp ecx, eax
jl 0x53c869
mov eax, dword [ebp + 4]
or ecx, 0xffffffff
mov word [eax + ebx*2], cx
mov eax, dword [ebp + 0x20]
mov ebp, dword [esp + 0x7c]
add ebp, 8
mov dword [eax + ebx*4], 0x657310
mov eax, dword [esi + 0x28]
mov dword [ebp], eax
inc dword [esi + 0x28]
mov eax, dword [esp + 0x14]
inc eax
push eax
push dword [ebp]
push 0x74
push edi
call fcn.0057b76b
push dword [esp + 0x68]
push esi
call fcn.00584c34
mov eax, dword [esi]
add esp, 0x18
test dword [eax + 0x50], 0x80000
jne 0x53c906
cmp byte [esp + 0x48], 0
je 0x53c906
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
push ebp
push dword [eax]
push esi
call fcn.005896de
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
push eax
push 0x2710
push 0x4d
push edi
mov dword [ebp + 0x34], eax
call fcn.0057b76b
add esp, 0x1c
add ebp, 8
mov eax, dword [esp + 0x28]
test byte [eax + 0x28], 0x20
je 0x53c94e
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x70], eax
xor eax, eax
push eax
push eax
push eax
push 0x47
push edi
call fcn.0057b786
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x3c]
push dword [eax + 0x18]
push 0
push dword [esp + 0x8c]
push 0xb
push edi
call fcn.0057b786
mov eax, dword [esp + 0x98]
add esp, 0x28
push 0xc
jmp 0x53c957
mov eax, dword [esp + 0x7c]
push 0x24
mov eax, dword [eax + 4]
pop ecx
push eax
push ecx
push edi
call fcn.0057b752
mov dword [esp + 0x7c], eax
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
je 0x53c991
dec dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
push 0x10
push ecx
push eax
push esi
mov dword [esp + 0x6c], ecx
call fcn.00564a78
mov eax, dword [esp + 0x34]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
push esi
call fcn.00569765
xor ecx, ecx
mov dword [esp + 0x70], eax
push ecx
push ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0x94]
push dword [eax + 4]
push dword [esp + 0x74]
push esi
call fcn.0056904f
mov edx, dword [esp + 0xa0]
add esp, 0x24
mov dword [esp + 0x58], eax
cmp dword [edx + 0x34], 0
je 0x53c9e7
mov ecx, dword [esp + 0x24]
movzx ecx, word [ecx + 0x18]
push ecx
push eax
push 0
push dword [edx + 0x34]
push 0xb7
push edi
call fcn.0057b858
add esp, 0x18
push dword [esp + 0x6c]
push dword [ebp]
push 0x8a
push edi
call fcn.0057b76b
push 0x10
push edi
call fcn.0057bb2b
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x53ca17
push dword [esp + 0x5c]
push edi
call fcn.00584970
pop ecx
pop ecx
mov ebp, dword [esp + 0x28]
test byte [ebp + 0x28], 0x20
je 0x53ca5f
push dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push edi
add edx, ebx
call fcn.0058273c
mov ebx, dword [esp + 0x78]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x84]
push dword [eax + 8]
push dword [ebp + 0x20]
push dword [eax + 4]
push ebx
push esi
call fcn.0058cf21
push ebx
push edi
call fcn.00582757
add esp, 0x24
and dword [ebp + 0x28], 0xffffffdf
jmp 0x53ca84
mov ebx, dword [esp + 0x70]
lea eax, [ebx + 1]
push eax
mov eax, dword [esp + 0x80]
push dword [eax + 4]
push 0x27
push edi
call fcn.0057b76b
push 3
push edi
call fcn.0057bb2b
add esp, 0x18
push ebx
push edi
call fcn.0058273c
push dword [esp + 0x74]
mov ecx, dword [edi + 0x6c]
push esi
mov dword [eax + 8], ecx
call fcn.00573e04
push dword [esp + 0x74]
push edi
call fcn.0058273c
mov ecx, dword [edi + 0x6c]
add esp, 0x18
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x53cac0
push eax
push dword [esi]
call fcn.0056485a
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret