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

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
mov ebp, dword [esp + 0x24]
push esi
push edi
mov edi, dword [ebx]
mov esi, 0xfff0bdc0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x28], eax
add eax, 2
mov dword [ebx + 0x28], eax
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x661bcc
mov ecx, dword [edi + 0x14]
xor esi, esi
test ecx, ecx
jle 0x661bcc
mov eax, dword [edi + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x661bcc
inc esi
add eax, 0x10
cmp esi, ecx
jl 0x661bc0
mov eax, dword [edi + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8]
push 0
push dword [ebp]
push 0x1b
push ebx
call fcn.00640650
add esp, 0x14
test eax, eax
jne 0x661ed8
mov eax, dword [esp + 0x10]
push dword [eax]
push 1
push dword [eax + 0x1c]
push esi
push ebx
call fcn.00667af0
mov edi, dword [ebx + 8]
add esp, 0x14
test edi, edi
jne 0x661c2e
cmp dword [ebx + 0x78], edi
jne 0x661c1b
mov eax, dword [ebx]
test byte [eax + 0x44], 8
jne 0x661c1b
mov byte [ebx + 0x17], 1
push ebx
call fcn.0066c560
mov edi, eax
add esp, 4
test edi, edi
je 0x661ed8
mov eax, dword [esp + 0x30]
test eax, eax
jns 0x661c39
mov eax, dword [ebp + 0x2c]
push ebp
push ebx
mov dword [esp + 0x1c], eax
call fcn.00659d70
mov ebp, dword [ebx + 0x28]
add esp, 8
mov dword [esp + 0x20], eax
lea ecx, [ebp + 1]
mov dword [ebx + 0x28], ecx
test eax, eax
je 0x661c5a
inc dword [eax]
push 0xfffffffffffffff7
push eax
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x32]
push eax
push 0
push ebp
push 0x6d
push edi
call fcn.0066bc70
mov eax, dword [esp + 0x2c]
push 0x68
push eax
push esi
push dword [esp + 0x50]
push ebx
call fcn.0065b970
push 0
push dword [esp + 0x5c]
push 0x25
push edi
call fcn.0066bba0
mov cl, byte [ebx + 0x13]
add esp, 0x40
mov dword [esp + 0x18], eax
test cl, cl
jne 0x661ca7
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x661cb6
dec cl
movzx eax, cl
mov byte [ebx + 0x13], cl
mov eax, dword [ebx + eax*4 + 0x15c]
push 0
push 0
lea ecx, [esp + 0x24]
mov dword [esp + 0x18], eax
push ecx
push 0
push eax
push dword [esp + 0x3c]
push dword [esp + 0x44]
push ebx
call fcn.006563c0
push dword [esp + 0x30]
push ebp
push 0x7e
push edi
call fcn.0066bba0
mov edx, dword [esp + 0x4c]
add esp, 0x30
test edx, edx
je 0x661d16
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x661d0d
lea eax, [edx*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x88]
mov dword [ecx], eax
push ebx
call fcn.00649ee0
add esp, 4
mov eax, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x2c]
push 7
push edi
call fcn.0066bba0
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [edi + 0x88]
test ecx, ecx
jns 0x661d3c
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x661d4b
mov eax, 0xb2e43c
jmp 0x661d54
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
cmp dword [esp + 0x30], 0
mov dword [eax + 8], edx
jge 0x661d71
push esi
push dword [esp + 0x18]
push 0x85
push edi
call fcn.0066bba0
add esp, 0x10
mov eax, dword [esp + 0x28]
push 0xfffffffffffffff7
push dword [esp + 0x24]
inc eax
push esi
push dword [esp + 0x20]
push eax
push 0x69
push edi
call fcn.0066bc70
mov eax, dword [edi + 0x88]
add esp, 0x1c
test eax, eax
jle 0x661db3
xor edx, edx
lea ecx, [eax + eax*4]
cmp dword [esp + 0x30], edx
mov eax, dword [edi + 0x58]
setl dl
dec edx
and edx, 0x10
or dx, 1
mov word [eax + ecx*4 - 0x12], dx
push 0
push ebp
push 0x23
push edi
call fcn.0066bba0
mov esi, eax
add esp, 0x10
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], esi
cmp byte [eax + 0x36], 0
je 0x661e17
mov esi, dword [edi + 0x88]
add esi, 3
push esi
push edi
call fcn.00673050
mov eax, dword [edi + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x32]
push eax
push dword [esp + 0x1c]
push esi
push ebp
push 0x78
push edi
call fcn.0066bd50
push dword [esp + 0x4c]
push 2
push ebx
call fcn.00668350
mov esi, dword [esp + 0x4c]
add esp, 0x2c
jmp 0x661e21
mov eax, dword [edi + 0x88]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
inc eax
push eax
push dword [esp + 0x14]
push ebp
push 0x79
push edi
call fcn.0066bc10
mov eax, dword [esp + 0x3c]
inc eax
push eax
push 0x7d
push edi
call fcn.0066bb40
push dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
inc eax
push eax
push 0x7f
push edi
call fcn.0066bba0
mov eax, dword [edi + 0x88]
add esp, 0x30
test eax, eax
jle 0x661e71
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
push dword [esp + 0x10]
push ebx
call fcn.006621c0
push dword [esp + 0x20]
push ebp
push 3
push edi
call fcn.0066bba0
mov edx, dword [edi + 0x88]
add esp, 0x18
test esi, esi
jns 0x661e98
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x661ea7
mov eax, 0xb2e43c
jmp 0x661eb0
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov ebx, dword [esp + 0x28]
push ebx
push 0x70
push edi
mov dword [eax + 8], edx
call fcn.0066bb40
lea eax, [ebx + 1]
push eax
push 0x70
push edi
call fcn.0066bb40
push ebp
push 0x70
push edi
call fcn.0066bb40
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret